Copyright: copyright (c) 1997-99 Dean Software Design


TechScheduler

for Windows 32bit Operating Systems

copyright 1997- 2000 Dean Software Design

Help Topics

TechScheduler Overview

Supported Operating Systems

Contacting Dean Software Design

Installing TechScheduler

Uninstalling TechScheduler

Where Configuration & Job Data is Stored

Starting the Program

Closing the Program

Command Line Options/Pre-Load Config

The Operating Info Screen

How to save your config to a File.

The Main Menu

The Job List

Configuring TechScheduler

The Scheduler Engine

Defining a global exclusion calendar

Job Groups and Jobs

Scheduling a Program to run

Scheduling a System Job

Scheduling a File\Folder Job

Scheduling an Email Job

Scheduling a Network Job

Scheduling an FTP Job

Scheduling a Keystroke Emulation Job

Scheduling a "Glue-it!" Notes job.

Scheduling a RAS Dial-up Networking job.

Scheduling a WatchDog system monitoring job.

Scheduling a Windows NT job.

Scheduling a Zip/Unzip job.

Scheduling a VB/Java Script job

Scheduling a Print Job

Using Variables to Control Job Flow

Print and Print Preview

Using the Clipboard

Forcing a Start-of-Day

Minimizing to an icon in the system tray

Renaming an existing job

Saving Jobs to a disk file

Retrieving Jobs from a disk file

Viewing Registry File Associations

Security considerations

Using the NT Service

Controlling the Service from TechScheduler

Using the Remote Job Viewer program

Remotely Updating TechScheduler

Job Settings in job or save files

Programming with TechScheduler

Using the GUI API Interface DLL

Using the NT Service API Interface DLL

Programming the TechScheduler GUI API directly

Programming the TechScheduler NT Service API directly

Setting a Program's Error Level

Programming Examples (c++, delphi, vb)

Logs, Errors and Debugging

Diagnosing TechScheduler Errors

The Scheduler Log

Using the Debug Mode

How To ...

How to load new jobs into TechScheduler

How to keep your Online Service Connected

How to test the NT Service

Version History


Contacting Dean Software Design

Address

Dean Software Design

P.O. Box 13032

Mill Creek, WA 98082-1032

Phone

Office\Support: (425) 316-8645

Sales: 1-877-734-7638

fax: 1-770-497-9234

international: 1-770-497-9126

Email

Winutils@aol.com

Home Page

www.winutils.com

Download Pages

www.winutils.com

www.qwerks.com

www.hotfiles.com

Compuserve <Winshare> forum


Overview

TechScheduler is a powerful Windows 32bit OS tool that allows you to schedule programs and system activities in a no-nonsence, flexible way.

Use TechScheduler to:

- Schedule programs (local or remote).

- Schedule batch files (local or remote).

- Schedule system shutdowns.

- Schedule network logouts.

- Schedule File Activities (copy, delete, create & rename).

- Schedule automatic email jobs that can send messages and files to multiple recipients without intervention.

- Schedule network jobs that can connect to network resources, disconnect from them and PING them for availability.

- Create custom jobs that can be run on demand.

- Schedule Multi-Step jobs that have boolean success-failure logic.

- Provide automatic retry logic on failed jobs.

TechScheduler provides automatic notification via MAPI or SMTP email of the success or failure of any job.

Each event that occurs with TechScheduler is logged to a local or remote log file. The number of days of data in the log file can be preset.

Built-in security allows you to put a password of 3 different levels of TechScheduler functionality.


Supported Operating Systems

Windows 95 (all versions and service packs). Note that the System Job "Empty Recycle Bin" job option requires a newer version of the shell32 api which does not appear on all versions of Windows 95.

Windows 98 - fully supported.

Windows NT - v4.x and all service packs.

Windows 2000 - Fully tested with release candidate 2 (October 1999).


Installing Techscheduler

TechScheduler uses InstallShield to install the application.

The first time TechScheduler is run on a system it will automatically invoke an embedded "Setup Wizard" which walks you through setting up several key pieces of information that TechScheduler needs to put in the registry.

TechScheduler only inserts items on your system in the following places:

1. The directory where TechScheduler is run from will may contain log files and an uninstall batch file.

2. The Windows Registry under the "Dean Software" key.

TechScheduler added no DLLs, Device drivers, INI files or Help files to your system.


Where Configuration & Job Data is Stored

Techscheduler allows you to specify where configuration and job data is stored.  The process of changing that target is by rerunning the Setup Wizard from the WINDOW menu option.

Note: If you change the destination once configuration and job data is stored, the new setting will NOT be automatically populated with the data. You must use Windows tools to manually move data or options found on the JOBS menu.

Registry

LOCAL_MACHINE - Use the Local_Machine generally for all applications under all Operating systems.

CURRENT_USER - Use the Current_User for applications where users are not allowed to modify settings in the registry under Local_Machine.

Non-registry

Local or Network INI Style file - This option allows flexibility and distributed control of configuration and job data. The INI file can be located locally or on any network resource.

When you install Techscheduler there will be 2 INI style files created by default in the folder where TechScheduler is installed: TEKSCHED.INI and TKSHDSVC.INI.

Both of these INI files have a section marked [Admin] under which are 2 keys which control where and how INI files are used:

bUseIni - value 0 indicates not to use the INI file and value 1 indicates to use the INI file.

sIniPath - string value indicating where the INI file resides, in other words you can specify any other local or network file in which to put the configuration and job data.

Note: When use Non-Registry config and job storage, string encryption is disabled since INI style files can not store characters outside the ascii visible range. This means passwords and other sensitive data can be read in their unencoded form.


UnInstalling TechScheduler

From Windows Control Panel select the "Add/Remove Programs" option.

From the list of installed programs select TechScheduler and click on the "Remove" button.

Follow the Uninstallshield prompts to fully uninstall TechScheduler.

You do not need to reboot your system.


Starting TechScheduler

TechScheduler can be opened in several different ways:

1. From an icon or shortcut to the executable.

2. By another program.

3. From the DOS command line with line command options.


Closing TechScheduler

You can close TechScheduler in 3 different ways:

1. Click on the 'X' in upper right corner of the TechScheduler window.

2. Click on the 'X' button in the TechScheduler toolbar.

3. Select the "File" -> "Exit" option from the main menu.

4. Select the "Close" or "Exit" option from the system menu.

When you close TechScheduler it remember the position and size of the TechScheduler window so that it can be restored for your next session.


Command Line Options

Valid Command Line Options:

/loadfile=

This will invoke the configuration pre-load option, ie: "teksched /loadfile=c:\load.sav"

/runondemand=

This will force TechScheduler to run any valid job name immediately upon startup, ie: "teksched /runondemand=job1"

/loadsched=

This will force TechScheduler to load a scheduler ini file with jobs into the job list on startup, ie: "teksched /loadsched=myjobs.sav"

/nowizard

If you specify this command then the setup wizard form will not appear when a new version of TechScheduler is installed.

/register=

You can specify the registration information to force registration at startup, good way to distribute and register TechScheduler. Format: "/register=firstname,lastname,key" ie: "/register=bill,gates,12345.23456.34567.45678.7654"

/multiproc

This option invokes the special code inhibiting threaded timer usage in case a multiprocessor system shows signs that the GUI will not load.

More Details on LOADFILE.

You can pre-load configuration options by creating an INI style file which can be distributed with TekSched or can reside on a local or network drive.

To force TekScheduler to seek and read a pre-load file, use the command line option shown above.

The format of the pre-load file is a standard INI file which can contain any or all of the following keywords (note: comments in ( ) indicate values you should enter):

[Config]

iStartAsWindow=0    (0=window, 1=icon 2=mini window )

sUserId=Dean Software (set string)

sSystemId=DeanSoft  (set string)

iTimerInterval=250 (ms between timer reads)

sGeneralFont.Name=MS Sans Serif (valid font name)

iGeneralFont.Size=10 (valid font size)

iGeneralFont.Style=0 (style type integer, 0 is normal)

bMinimizeToSysTray=1 (0=minimize to system tray, 1=mini window)

sLogFile=c:\\teksched.log (locaiton of log file)

bLogJobStarts=1  (0=false, 1=true)

bLogJobEnds=1  (0=false, 1=true)

bLogJobPrestarts=1  (0=false, 1=true)

bLogJobListChanges=1  (0=false, 1=true)

bLogEmails=1  (0=false, 1=true)

bCleanLogAtSOD=1  (0=false, 1=true)

iDaysToKeepInLog=7  (# days to keep in log)

bLogDebugInfo=1  (0=false, 1=true)

bLoadStartupFile=1  (0=false, 1=true)

sStartupFileName=c:\test.sav  (file location)

bDeleteStartupFile=1  (0=false, 1=true)

bLoadStartupFileOnce=1  (0=false, 1=true)

bUseSystemId=0  (0=false, 1=true)

bUseUserId=0  (0=false, 1=true)

bListStatus=1  (0=false, 1=true)

bListSchedule=1  (0=false, 1=true)

bListProgram=1  (0=false, 1=true)

bListLastStart=1  (0=false, 1=true)

bListLastEnd=1  (0=false, 1=true)

bListLastStatus=1 (0=false, 1=true)

bUseMaximizePassword=1  (0=false, 1=true)

bUseClosePassword=0  (0=false, 1=true)

bUseConfigPassword=0  (0=false, 1=true)

bUseRecycleBin=1  (0=false, 1=true)

bUseJobSecure=0  (0=false, 1=true)

iPosition Left=100

iPosition Top=100

iPosition Width=524

iPosition Height=389

iTimedListCol0=100

iTimedListCol1=55

iTimedListCol2=55

iTimedListCol3=55

iTimedListCol4=55

iTimedListCol5=55

iTimedListCol6=55


The Operating Info Screen

This diagnostic screen provides information on the current TechScheduler session.

- Program Path. Where is TechScheduler being run from.

- Command Line options. All command line options passed into the program.

- Multiprocessor Option. Is this option enabled.

- Registry Target. Where is TechScheduler reading the registry from.

- Running Since. When was this occurance of TechScheduler started.


Save Configuration to a File

The TechScheduler configuration is kept in the Windows 95 / NT registry under the key:

HKEY_CURRENT_USER\Software\Dean Software\TechScheduler\Config.

Using REGEDIT which comes with Windows 95/NT, select the key as shown above. From the RegEdit main menu choose the:

"Export Registry File" option after you have selected the "Config" key. You will be prompted for a location for the file.

After the file has been saved, you will need to use an editor to remove all double-quotes from the file in order to make compatible with the TechScheduler import function.


The Main Menu

The menu options shown in the main menu provide access to key functions:

File Menu:

1. Print. Print the job list or log file.

2. Print Setup. Allows you to change printers or printer specs.

3. Preferences. Invokes the configuration form.

4. Show Toolbar. Will show or hide the main toolbar.

5. Show Status line. Will show or hide the main status line.

6. Exit. Exits TechScheduler.

Edit Menu:

1. View Registry Extensions. Show the file extension relationships maintained by the registry.

2. Copy to Clipboard. Copies the job list or log file to the clipboard.

3. Start of day. Forces a start of day to run.

4. FTP directory. will attempt to connect to a remote server to get a directory of files.

5. Global Exclusion Calendar. Maintain a list of dates and times in which jobs are not permitted, ie: holidays, shutdowns, etc..

Jobs Menu:

1. Create a new job. Loads the new job selection form.

2. Delete selected job. Deletes the job selected from the list.

3. Edit selected job. Edits the job selected from the list.

4. Copy a job. Lets you copy a specific job to a new job.

5. Rename a job. Rename any existing job.

6. Delete All Jobs. Clears the entire job list.

7. Run job now. Runs the job selected from the list.

8. Create job shortcut. Creates an icon on the windows desktop for the selected job.

9. Save job list to file. Saves the selected job to an INI style file.

10. Read job from file. Reads an INI style file and loads the job info.

Windows Menu:

1. About.  Loads the TechScheduler about form.

2. Rerun setup wizard.  Lets you walk through the setup wizard again.

3. Help. Loads the embedded help you are reading right now.

The toolbar is the area that holds the functional buttons. Each button has fly-over capability and provides hints and "What's This?" help.

1. Exit TechScheduler.

2. Configure TechScheduler

3. Suspend All Jobs.

4. Enable All Jobs.

5. Force Start-of-day.

6. Copy to Clipboard

7. Print

8. About TechScheduler & shareware registration

9. Load Embedded Help.


The Job List

The main job list consists of the main "Schedule" tab area showing:

- Several buttons.

- Several columns with job information.

The Job Group

- Select from available job groups from the pull-down list, default is "Default".

- Use the "Add new Group" to add a new job group.

Each of the buttons performs a TechScheduler task.

- Add a New Job.  Invokes the new job form where different job types can be selected.

- Remove a Job. Removes the job you have selected in the job list.

- Edit a Job. Edits the existing job you have selected in the job list. This can also be accomplished by double-clicking on any job in the job list. Note that you can not edit a job that is running.

- Hold.  Put the selected job into "Hold" status.

- Restart.  Put the selected job back into active status.

- Clear Pause. Prompts for an input to clear a job that has been paused due to error.

- Run job now.  This will force the selected job from the job list to start running immediately. The job does not necessarily have to be a "Demand" type.

The Job List columns can be configured from the "Configuration" form. Each column contains specific information about a job:

- Job Name. The unique name a job has within the job list.

- Status. A job may be "waiting" to start, "demand" only invoked manually, "hold" placed on hold, "complete" meaning it has finished running or "active" indicating it is currently running.

- Schedule. The date and time the job will be running.

- Last Started. The last date and time the job was started.

- Last Ended. The last date and time the job ended.

- Last Status. The last completion status of this job.


Configuring TechScheduler

TechScheduler can be configured dynamically during use. Changes to configuration take effect immediately.

To invoke the Configuration form, click on the Configure speedbutton. This will cause the configure form to be displayed.  To close this form, click on "Save" to save any changes you made, or "Cancel" to close without saving any changes you made.

The configuration form provides several tabs which relate to different functional areas of TechScheduler.

General Tab

- Return address on Email. A descriptive name that will be automatically posted mails you send using TechScheduler.

- Default identifier. A shorter name\id that will get written to logs and emails identifying your system.

- Get System Owner. Click on this button to retrieve the string containing the system owner from the registry. It will be shown in the Default identifier edit field.

- Select the font to use on the job list.

- Select background bitmap or no bitmap to show behind the buttons on the toolbars and New job form.

Startup Tab

- Start as. Determine how TechScheduler will initially be displayed, either as a windows in the last position it was at or as an icon in the system tray.

- Confirm Shutdown. Set this option to have TechScheduler request a confirmation whenever an attempt is made to shutdown.

Logging Tab

- Log file. Enter the path and name of the log file or use the Browse button to select a file. Default is C:\TEKSCHED.LOG.

- Log all job starts. An entry will be made in the log every time a job starts.

- Log all job ends. An entry will be made in the log every time a job ends.

- Log prestart activities. An entry will be made everytime a pre-start activity occurs, including status.

- Log changes. Every time a job is added or modified an entry will be made to the log.

- Log email. Add a log entry every time an automatic email is sent.

- Clear Button. Click on this button to completely clear the log file.

- Log file cleanup. Check this button to permit the start-of-day process to automatically purge old log file entries. set the number of days of log entries using the accompanying days edit.

FTP Log Tab

The options on this tab set the parameters by which information for File Copy and FTP jobs is written to a unique FTP log.

NT Event-Log Tab

The options on this tab set the parameters by which information can be written to the standard NT Event-Log and thereby viewed using the NT Event viewer. (Note: Under Win95/98 setting this option will have no effect.)

Data Control Tab

Show Status column. Display the column that indicates whether a job is waiting, active or complete.

Show Schedule column. Summarizes the job schedule, ie: day and time.

Show Program name column. Gives the name of the program, file or system activity that will be run.

Show Last Started column. Displays the date & time the job was last started.

Show Last Ended column. Displays the date & time the job was last completed.

Show Last Status column. Displays the completion status the last time the job was run.

Allow use of Job Groups. Check this box if the user can use Job Groups. By not checking this box the Job Group controls will not appear on the main toolbar.

Security Tab

- Maximize Password. This option will force the user to enter the password in order to maximize the program from the system tray.

- Close Password. This option will require a password in order to shut down TechScheduler.

- Options Password. This option will require a password in order to access the Configuration form.

- Password. Type the password you require and click on the "Set" button.

- When Deleting. Check this option to force any file deleted by TechScheduler to be put into the recycle bin for easy undeletion.

Email Tab

- Allows you to specify email options for notification and email jobs. Click here for Email configuration options.

Refresh Tab

- Automatic Refresh from Registy. Use these settings to specify a frequency from which the entire scheduler list will be refreshed from the job storage list in the registry. This facilitates the ability to have new jobs added to the registry by other processes and then read by TechScheduler.

- Automatic Refresh from a job file or job files. These settings will force TechScheduler to search for a specific file (ie: a.sav) or a series of files (ie: *.sav), verify that they are valid scheduler job files and then load their contents into the job area of TechScheduler's registry key.

Timer Tab

The Timer tab lets you specify settings that affect how the system timer assigned to TechScheduler is used:

- Start-of-Day Time. By default (and prefered) this is 12:00am (0:0), however you can modify this to run at a different time if midnight conflicts with jobs needing to be run.

- Suspend all jobs. To have all jobs automatically suspended at a given time each day check this box and enter the Hour, Minute and Duration for the suspension.

- Timer interval. This is the number of ms between each occurance of the timer engine. From 250ms to 10000ms in intervals of 250.

- Animate the system tray icon. If set, this will show an animated clock running in the system tray while TechScheduler is active, otherwise the clock is not animated.

- Maximum Concurrent Jobs. The number of jobs that are allowed to run simutaneously on your CPU. If another job is scheduled to start or manually started it will wait until another jobs drops off before kicking off. Default is "0" which is unlimited jobs.

- Use a standard or a threaded timer. Threaded timers allow code to be run on independant threads instead of the standard TechScheduler thread. Use this setting in conjunction with the "Allow Concurrent jobs" setting to give a measure of job multitasking.

Remote Viewer Tab

The Remote Viewer tab provides options that let you view job statuses running on a TechScheduler system from another PC. This is done via a job status file which can be written to a common location.

- Create Job Status file on Status Change. Every time a job changes status the file will be written.

- Create Job Status file on Startup. Every time TechScheduler starts or ends the file will be written.

- Create Job Status file on Job Update. Every time a job is added, deleted or updated the file will be written.

- Select or browse for the location of the job status file.

Remote Update Tab

The Remote Update tab allows to indicate whether this copy of TechScheduler will accept commands issued from remote systems.

- Specify whether this system's copy of TechScheduler will accept remote commands.

- Allow commands to add, delete or edit jobs.

- Allow commands to "run now" any job on the schedule.

- Allow commands to pause or resume individual jobs.

- Allow commands to suspend or resume all jobs on the schedule.

- Specify the directory in which TechScheduler should look for job files.

- Specify the job file extension, ie: job

- Specify the frequency (in minutes) at which TechScheduler checks for job files


Configuring Email Options

MAPI Tab

- Allow use. This checkbox will enable\disable the use of MAPI email by TechScheduler.

- Default Recipient's Email. By entering a MAPI email address here, your system's MAPI email interface will automatically address the email.

- Default subject. This field allows a standard subject to be attached to all MAPI emails, ie: Tech Support.

SMTP Tab

- Allow use. This checkbox will enable\disable the use of SMTP email by TechScheduler.

- Default Recipient's Email. By entering an internet email address here, TechScheduler will automatically address the email when sent.

- Default Port. Standards dictate the SMTP port to be 25, however you can modify the port to a specified port number as configured on your system or proxy.

- Default subject. This field allows a standard subject to be attached to all internet emails, ie: Tech Support.

- SMTP server. This is the name or address of your internet email SMTP mail server. It may be a proxy or you can determine it by examining the Options menu under Netscape Navigator or Microsoft Internet Explorer or other browsers.

- Your email. This is your email address on the mail server.

- SMTP Timeout. The number of seconds that the smtp client should retry when an error occurs before failing the smtp session. defaults to 30 seconds.

- Encoding. Select UUEncode (default) or Mime encoding for attachments on the email.

- Character set. Select either US Ascii (default) or ISO-8859-1 character sets.

Custom Email Tab

- Allow use. This checkbox will enable\disable the use of SMTP email by TechScheduler.

- Path for Email program. Enter or browse for the program. Note: the entire path is required.

- Command line options required for the email program.

- Allow attachment of files.

- Hide email Window when process is invoked.


The Scheduling Engine

TechScheduler's engine is based on a standard Windows 95/NT timer loop. Each time the preset interval occurs the loop is invoked.

The timer loop is only invoked once during a timing cycle, even if another timer interval occurs during the processing of the previous loop, it will not be invoked until the first one finishes.

The timer loop regularly releases its hold on the processor to allow other processes on your system to gain processor time.

We estimate that on a 486/66 with 16meg of RAM, Techscheduler utilizes 12% of the cpu. On a pentium 166 with 32 meg of RAM it utilizes less than 4% of the CPU.

The scheduler engine utilizes Delphi's inherant error handling tolerance routines. This means that a GPF may occur in the program or by called processes but in most cases the program will simply disable the function that failed and will proceed with other processing.


Scheduling a Program or Batch File

To schedule a program, batch file or shortcut to run:

a. Click on the "Create a New Job" button on the main form or use the menu option.

b. Select the "Program Scheduler" button from the New Job Selection form.

The "Job Entry" form will appear. To close the form, click on the "Save" or "Cancel" buttons.

The following fields are required entry:

1. Job Name. The alphanumeric unique name for this job. There is no length restriction though it should describe the goal\program being scheduled.

2. Program. The Path and Name of the program, batch file, routine or shortcut being scheduled.  You can use the "browse" to examine local or remote drives or you can use the Job Template button to access the Job Template form.

Use the Calendar and Schedule tabs to schedule this job.

You can also specify whether the job will end when the specified program is started or the job will wait until the program starts and eventually ends.

Use the "Quick Start" buttons to try your job with the parameters you set.

On the Options Tab:

- Prestart Actions. Activities that should occur BEFORE the job starts.Click on this button to use the pre-start actions form. see: Setting Prestart Criteria

- Post-Job Actions. Activities that should occur AFTER the job ends. Click on this button to use the post-job actions form.  see: Setting Post-Job Criteria

- System Settings. How the scheduled program will appear and run.  Click on this button to use the system settings form.  see: Setting System Parameters

- Notification Criteria. Automatic emails that are sent when the job starts or ends. Click on this button to use the notifications form.  see: Setting Notification Criteria

- Termination Criteria. Ways to automatically stop a running job.  Click on this button to use the termination criteria form.  see: Setting Termination Criteria

- Success & Failure Criteria. Logical ways to determine whether your job succeeds or fails. Click on this button to use the success form.  see: Setting Success & Failure Criteria

- Make this a secure job. This job can not be changed without entering the TechScheduler password.

- Put this job on hold. This job will appear on the job list in "Hold" status immediately.

- Delete job. Once the job has run, delete it from the scheduler.

- Deactivate screensaver. If the Windows standard screensaver is active at the time of the scheduled job kickoff, TechScheduler will force the screensaver to close.

- Use the NT Event-Log. By default this option is on. You can set the event id that is recorded in the NT Event-Log.

When the "Save" button is clicked, fields are validated and you will be shown errors in entry and be forced to correct them before the job is added to the scheduler queue.


Setting Pre-Start Criteria

Prestart criteria are activities that will occur before the scheduled program starts.

To enable pre-start criteria click on the "Perform the following..." button otherwise click on the "There are no..." button.

Select a pre-start activity:

1. Set Starting Directory. Some programs may require that the Windows environment has its current directory set to a specific directory path.  Enter the path in the edit field.

2. Check for minimum disk space. Enter the minimum megabytes (mb) on the specified drive that must be present in order for the job to run.

3. Check for existance or non-existance of a file. Enter the file name (or browse) and then select option to check for existance or non-existance of the file.

4. Pre-start delay. Use the control to set a delay in seconds which will force this job to not run for the specified number of seconds if this job was invoked from another job.  This delay does not affect this job's normal scheduled startup time.

To save your pre-start settings to the current job, click on the "Save" button.


Setting System Parameters

Any TechScheduler job may cause a window to be displayed or a process to be run. You use this form to set the specific parameters that affect how a program looks or runs.

Job's Program Window Appearance.  Choose from one of the following settings:

1. Normal. The window will appear in the position and size specified by the program being run.

2. Maximized.  The window will be set to fill as much of the screen as the program being run will allow.

3. Minimized.  The window will be minimized to the taskbar or to an icon.

4. Hidden. The window will not appear on the desktop but will run in the background.

Program Priority Settings.  Set how the program's thread will get processor time:

1. Normal. Processor will give the program a normal time slice.

2. High. Processor will give this task precendence over normal processes.

3. Idle. This process will only get processor time when the processor is idle from other jobs.

4. RealTime.  This setting is only meant for infrequent rapid jobs (ie: hardware settings or system config) because the processor will dedicate itself to this process and may not give other processes much of a chance to work.

Select the type of Execution required for this job:

1. Create a process using the command line parameter option. Best for Windows programs.

2. Create a process using the application line parameter option. Best for non windows programs.

3. Use the Windows Shell Execute option which will create and maintain a shell for batch files and other non-standard jobs.

To save your system settings to the current job click on the "Save" button, to abort click on the "Cancel" button.


Setting Notification Criteria

TechScheduler has the ability to auto-generate emails to be sent when a job starts or ends. SMTP, MAPI or custom commandline emailer formats are supported.

To disable the notificaiton feature, click on the "No notification..." button.

To enable the notification feature, click on the "Use these..." button and select one of the following options:

MAPI Email. To use MAPI email first enable the MAPI capability in the configuration form, then enter a MAPI email recipient in the email user edit field.

1. Notify when job starts to this MAPI email user.  When a job starts, an email will be sent stating the job name, start date and time and the status of whether TechScheduler could start the job or not.

2. Notify when job ends to this MAPI email user.  When a job ends (for any reason) an email will be sent stating the job name, end date and time and the completion status.

SMTP (winsock based) Email. To use SMTP internet email first enable the SMTP capability in the configuration form, then enter a SMTP email recipient in the email user edit field.

1. Notify when job starts to this SMTP email user.  When a job starts, an email will be sent stating the job name, start date and time and the status of whether TechScheduler could start the job or not.

2. Notify when job ends to this SMTP email user.  When a job ends (for any reason) an email will be sent stating the job name, end date and time and the completion status.

Custom (commandline based) Emailer. To use the your custom emailer first enable the Custom Email capability in the configuration form, then enter an email recipient in the email user edit field.

1. Notify when job starts to this user.  When a job starts, an email will be sent stating the job name, start date and time and the status of whether TechScheduler could start the job or not.

2. Notify when job ends to this user.  When a job ends (for any reason) an email will be sent stating the job name, end date and time and the completion status.

- Extra text on email message. Enter any additional message you want appended to the email message beyond the auto-generated results message.

- Additional text file to append to message. This will cause the email message body to show the text from a text file.

To save your notification criteria changes to the current job click on the "Save" button, otherwise click on the "Cancel" button.


Setting Termination Criteria

TechScheduler has the ability to force programs to shutdown after they have been invoked from the scheduler.  This is useful for jobs that may only be needed to run for a limited time, ie: file transfer or utility programs.

To disable the auto-termination feature click on the "No termination criteria" button.

To enable the auto-termination feature click on one of the following options:

1. Terminate after running for a certain number of minutes.  Enter the number of minutes from start-up until auto-termination.

2. Terminate at a specific time.  Use the Hour-Min-Sec edits to specify the time of day (24 hour clock) to auto-terminate the job.

Set termination code.  You can force the termination code of this job to a specific value if the auto-termination feature is used.

This option is useful to determine whether a job terminated normally or was forced to shut down.  Most jobs will return a 0 when they end normally, you could therefore set the termination error code here to be a '1' and then test for this value.

To save the termination criteria to the current job click on the "Save" button, otherwise click on the "Cancel" button.


Setting Success & Failure Criteria

TechScheduler's powerful scheduling capabilities allow for boolean tests on whether any job was successful or failed.  However, most programs do not set any type of error code or flag when they exit that you can use to determine whether they were successful or failed.

You can use the "Success & Failure Criteria" form to force TechScheduler to test certain criteria (or combinations of criteria) in order to make a determination of whether the job was successful or failed.

By detault TechScheduler will test the Errorlevel of a terminating program. If errorlevel is 0 the job is successful, if non-zero it failed.

Errorlevel testing:

Check the checkbox by "If Errorlevel" to add error level testing to the overall success\failure calculation.

- Error Level can be tested against the value you enter as follows:

  = equal to

  <> not equal to

  > greater than

  < less than

  >= greater than or equal to

  <= less than or equal to

  File Existance testing:

Check the checkbox by the "If File" statement to add file checking to the overall success\failure calculation.

- A File by the name you enter can be tested to "exist" or "not exist" at the completion of the job.

INI value key value testing:

- Check the checkbox by the "If Key" statement to add INI file key checking to the overall success\failure calculation.

- Key: This is the actual value in the ini file before the "=" sign. In this example: Length=4  the key is "Length".

- Section: This is the group heading in the INI file for a series of Keys. Sections are always surrounded by square brackets. Examples:  [WinFiles] or [386Enh].

- Check value to either "=" equal or "<>" not equal.

- Value to check for. This can be an alphanumeric series of any length.

- Ini file location.  Give the full path and name of the INI file that will be checked or use the "Browse" button to select the file.

Registry key value testing:

- Check the checkbox by the "Check Registry" statement to add Registry key checking to the overall success\failure calculation.

- Value: This is the registry item within the last key within the registry path to check.

- Key: This is the last key within the registry path.

- Path: This is the full path up to the last key.

- Section: select which section of the registry to check.

- Check value to either "=" equal or "<>" not equal.

- Value to check for. Select whether a string, numeric or boolean value should be checked and enter the value to check against.

Example: want to check the sDebugFile value for the Dean Software Design TechScheduler registry path:

Full registry path: HKEY_LOCAL_MACHINE\Software\Dean Software\TechScheduler\Config\sDebugFile

Value: sDebugFile

Key: Config

Path: Software\Dean Software\TechScheduler

Section: HKEY_LOCAL_MACHINE

String value to check: "c:\tkdebug.log"

Set the overall Success \ Failure flag (at the bottom right of the form). This flag will be set when the criteria you specified are met exactly.  In all other cases the success \ failure result will be the opposite of what is set here.

To save the success criteria changes to the current job click on the "Save" button, otherwise click on the "Cancel" button.


Using the Job Template List

The job template list is a simple way of keeping track of popular or complex scheduling jobs that you create so that they can be reused in future jobs.

When you invoke the job Template list, you are shown a description of the job tempplate as well as the command and parameters associated with the template.

Using the available controls you can add, delete or modify templates.


Setting the Schedule

This form allows you to specify a time schedule for your jobs.  Choose on of the following options:

1. No custom time schedule.  Forces the standard Hour-Min-Sec on the to be used.

- Hour. Use a 24 hour clock to select hour (0-23).

- Min. (0-59).

- Sec. (0-59).

2. On Demand.  Forces this job only to be run by using the "Run job now" or by being kicked off by another job.

3. Every Hour. Select the minute in every hour that the job will start.  This option runs 24x a day!

4. Selected Minutes during the hour. Use the 'Add' and 'Delete' to build a list of specific minutes for each hour that will invoke the job.

5. Every x minutes. Enter the number of minutes between each invokation of the job.

6. Selected Times.  Use the "Add" button to force the Hour-Min-Sec combination in the edit fields into the custom time list. There is no limit to the number of custom times that can be scheduled.  Use the "Delete" button to remove a custom time from the list.

- You can also specify the number of "late" minutes permitted (1-720). If the job could not run at the specified time (options 1 and 6 above) then TechScheduler will attempt to run the job for the maximum number of minutes specified here. Note: this option may introduce job running duplication because jobs may end within the "late" window which will kick them off again.

Click on "Save" to apply the custom schedule to the job.


Setting the Calendar

- Everyday. Job will run everyday until cancelled.

- Odd days. using calendar day it will run on the 1st, 3rd, 5th, ....

- Even days. using calendar day it will run on the 2nd, 4th, 6th....

- Last day of the month. will run job on the last day of every month.

- These days. Choose which days of the week job will run on.

- These dates. Use the "Add" button to get a calendar to select dates the job will run on. There is no limit to the number of dates you can list.  The delete button will remove dates from the list.

- Days of month.  Use the "Add" button to put the date shown in the edit box into the days list. There is no limit to the number of days in a month that can be listed. These days are recurring from month to month.

Exclusion of certain dates:

- Use the "Add" and "Delete" buttons to build a list of specific dates for which this job will NOT be run. The "Add" displays a calendar for you to pick dates from.


Setting Post-Job Criteria

Post-job activities are those activities that will run once the program in the job has stopped running.  For example you may call another program or even another Job from TechScheduler's job list.  You have the flexibility to specify a different activity depending on whether the job finished successfully or failed.

If the job is successful select one the following options:

1. No post-job actions.  Nothing will happen, continue normal processing.

2. Start this job immediately.  The job you select from the dropdown list will start immediately.  NOTE: A job must have already been scheduled in order for it to appear in this list.

3. Run this program immediately. Enter the path and name of the program to run or use the browse button.  The program MUST exist in order for it to run.

4. Run the next 'On Demand' job immediately. This option allows you to specify that the scheduler will kick off the next job marked 'On Demand' in the job list.

If the job failed select one of the following options:

1. No post-job actions.  Nothing will happen, continue normal processing.

2. Start this job immediately.  The job you select from the dropdown list will start immediately.  NOTE: A job must have already been scheduled in order for it to appear in this list.

3. Run this program immediately. Enter the path and name of the program to run or use the browse button.  The program MUST exist in order for it to run.

4. Run the next 'On Demand' job immediately. This option allows you to specify that the scheduler will kick off the next job marked 'On Demand' in the job list.

see also: Setting Retry Logic


Setting Retry Logic

Retry Logic. You can specify whether a job that FAILS attempts to retry itself with the same parameters. This can be useful when attempting to access remote devices, copy files or run programs.

1. Check either "Retry Logic Disabled" or "Retry Logic Active".

2. Maximum # of Retry attempts. Minimum 1, Maximum 99.  After the last attempt specified here, a failed job will kick over to Post-Job "Fail" logic as described above.

3. Interval between Retries. The number of minutes between each retry.  This interval supersedes any job that is set to recur every x minutes.

To save the post-job criteria to the current job click on the "Save" button otherwise click on the "Cancel" button.


Scheduling a System Job

System jobs are those tasks that usually require using Windows System Utilities. We have automated several of them to allow them to be handled on a scheduled basis.

To schedule a system task:

a. Click on the "Create a New Job" button on the main form or use the menu option.

b. Select the "System Scheduler" button from the New Job Selection form.

The "System Job Entry" form will appear. To close the form, click on the "Save" or "Cancel" buttons.

The following fields are required entry:

1. Job Name. The alphanumeric unique name for this job. There is no length restriction though it should describe the goal\program being scheduled.

2. One system activity, ie: "Shutdown" or "Copy Source"

Use the Calendar and Schedule buttons to schedule when this job will run.

Choose one of the following system activities:

1. Close all Programs.  This option will close all running programs (use processes) and then will force Windows 95/NT to log the user off of any network connections (or Windows security) and then will display a logon form.

2. Shutdown Windows. This option will close windows and display the standard "shutdown" screen.

3. Shutdown & poweroff.  If your PC is capable of handling "smart" poweroff sequences then this option will shutdown windows and invoke the poweroff sequence.

4. Shutdown & reboot. This option will force windows to shutdown and then will reboot the PC. see: Scheduling Shutdowns and Reboots.

5. Restart windows. This option will force windows into a restart mode, meaning all steps windows takes to load are taken, including loading startup programs.

6. Terminate a Process. This option will terminate any Windows 95\NT process that is running.

Under the "Options" group you can set the following features for this job:

- Prestart Actions. Activities that should occur BEFORE the job starts.Click on this button to use the pre-start actions form. see: Setting Prestart Criteria

- Post-Job Actions. Activities that should occur AFTER the job ends. Click on this button to use the post-job actions form.  see: Setting Post-Job Criteria

- Notification Criteria. Automatic emails that are sent when the job starts or ends. Click on this button to use the notifications form.  see: Setting Notification Criteria

- Make this a secure job. This job can not be changed without entering the TechScheduler password.

- Put this job on hold. This job will appear on the job list in "Hold" status immediately.

- Force all programs to close without user input.  Normally, any of the shutdown options will attempt to close programs. However, if a program demands the user confirm something then the routine is stuck until the user does input. Checking this option will force programs to close "in all cases" without user input. WARNING: This may cause unsaved data to be lost.

When the "Save" button is clicked, fields are validated and you will be shown errors in entry and be forced to correct them before the job is added to the scheduler queue.


Selecting a New Job Type

The New Job selection form allows you to select from the supported schedule job types.

Click on the "Return without Scheduling" button if you want to abort the process of scheduling a new job.


Scheduling Shutdowns and Reboots

Shutdowns and Reboots under Windows 95 are fairly simple and mimick most of the functionality of Windows 3.1x.

Under Windows NT 4.0x workstation or server many of the shutdown and reboot capabilities are restricted by security and administrative boundaries.

TechScheduler is coded to bypass MOST security options under Windows NT by making itself an administrative process and setting its own security LUID to allow for shutdowns.

In our testing we found that 9 out of 10 NT platforms allowed our shutdown & reboot processes to function normally while 1 situation which was running a 3rd party network administrative utility would not be FORCED down, thereby preventing the reboot.

Each situation is different however we feel we have a strong set of code that works consistantly between Windows 95 and Windows NT.


Scheduling File Activities

The common Explorer and File Manager file activities have been emulated in TechScheduler so that they can be performed on a scheduled basis.

To schedule a file activity task:

a. Click on the "Create a New Job" button on the main form or use the menu option.

b. Select the "File Activities" button from the New Job Selection form.

The "File Activity Job Entry" form will appear. To close the form, click on the "Save" or "Cancel" buttons.

The following fields are required entry:

1. Job Name. The alphanumeric unique name for this job. There is no length restriction though it should describe the goal\program being scheduled.

2. One file activity.

Use the Calendar and Schedule buttons to schedule when this job will run.

Choose from these file activities:

1. Files can be deleted. Use the Recycle option in the configuration form to force deleted files to go to the recycle bin. We have tested the standard recycle bin as well as Norton and others.

2. Files can be created or emptied. This option is effective to clear or recreate log and reporting files.

3. Copy files. Files of any size or type can be copied between local and remote drives.

4. Rename files. Files of any size or type can be renamed on local and remote drives.

5. Move files. Files of any size or type can be moved from one folder to another.

Note: The Copy, Move and Delete options allow for wildcard selection of entire folders.

Use the "Add" button to get a dialog allowing selection of files or folders for the file operation.

Unique Filename flag. Check this checkbox to force TechScheduler to create a unique filename on the target directory (for copy only). Filenames are in the format of yymmddxx.xxx (ie: 97110400.000, 97110400.001..).

Set Target File Date to Source File Date option. Check this checkbox to make the target file inherit the date/time of the source file instead of the copy date.

On the Target Tab set the target folders. Use the "Add Dated Folder" to force the creation of a directory/folder in the path that has the format of the current date: YYMMDDSS (SS is sequence number starting at 00).

Under the "Options" group you can set the following features for this job:

- Prestart Actions. Activities that should occur BEFORE the job starts.Click on this button to use the pre-start actions form. see: Setting Prestart Criteria

- Post-Job Actions. Activities that should occur AFTER the job ends. Click on this button to use the post-job actions form.  see: Setting Post-Job Criteria

- Notification Criteria. Automatic emails that are sent when the job starts or ends. Click on this button to use the notifications form.  see: Setting Notification Criteria

- Make this a secure job. This job can not be changed without entering the TechScheduler password.

- Put this job on hold. This job will appear on the job list in "Hold" status immediately.

- Copy Buffer size. Default to 4096 bytes. The buffer is created dynamically at execution of the job then deleted.

- Alternate Copy&Delete method. This will copy source files to single or multiple targets and delete each file after the last target receives it.

Error Handling is inherant in all File Activities. Success or Failure will be marked in the Scheduler Log.


Scheduling an Email Job

TechScheduler allows you to format and send emails automatically on a scheduled basis. Both MAPI and SMTP email methods are supported.

To Schedule an email:

a. Click on the "Create a New Job" button on the main form or use the menu option.

b. Select the "Email Scheduler" button from the New Job Selection form.

Make the following selections on the email form:

1. Job Name. The alphanumeric unique name for this job. There is no length restriction though it should describe the goal\program being scheduled.

Use the Calendar and Schedule buttons to schedule when this job will run.

Select the type of email engine to be used: SMTP or MAPI. Note that you must set the email parameters on the TechScheduler setup form before email will work.

- Email Subject. This is required, enter text that describes the email.

- Email Recipients. There must be at least 1 recipient. Use the "Add" and "Delete" buttons to build a list of recipients. You are limited to 255 recipients on a single email job.

- Email Text. This optional field allows a longer, more descriptive message to be sent on the email.

- Email attached files. Click on the "Attach Files" button. see: Attaching files to the email

Under the "Options" group you can set the following features for this job:

- Prestart Actions. Activities that should occur BEFORE the job starts.Click on this button to use the pre-start actions form. see: Setting Prestart Criteria

- Post-Job Actions. Activities that should occur AFTER the job ends. Click on this button to use the post-job actions form.  see: Setting Post-Job Criteria

- Notification Criteria. Automatic emails that are sent when the job starts or ends. Click on this button to use the notifications form.  see: Setting Notification Criteria

- Make this a secure job. This job can not be changed without entering the TechScheduler password.

- Put this job on hold. This job will appear on the job list in "Hold" status immediately.

When all email information has been entered, click on "Save" to save the email job to the job list.


Scheduling a VB/Java Script Job
Scheduling a VB Script /Java Script Job

If supported by your system, TechScheduler can execute VB or Java script files as scheduled events.

Dependencies:

- Script server installed.

- Java script or VB script runtime modules installed.

Dean software design has links to the necessary files on our web site. Note: if you do not have the correct software installed TechScheduler will not let you schedule or run Script jobs.

To Schedule an VB/Java script job:

a. Click on the "Create a New Job" button on the main form or use the menu option.

b. Select the " Schedule a VB/Java Script job" option.

Make the following selections on the job entry form:

1. Job Name. The alphanumeric unique name for this job. There is no length restriction though it should describe the goal\program being scheduled.

Use the Calendar and Schedule buttons to schedule when this job will run.

- Select the type of script you will be executing: VB or Java.

- Enter or Browse for the script file you will be executing.

- Enter the script function to call when the job is invoked. This must be a valid function within the script.

- Enter the timeout (ms) allowed for script interaction.

- Check the "Allow GUI Interaction" checkbox if the script is going to interact with the GUI or desktop.

- If the script has no input parameters then do not check any parameter options.

- If the script has 1 input parameter then check the param 1 checkbox and enter the input parameter.

- If the script has 2 input parameters then check the param 1 & param 2 checkboxes and enter the input parameters.

- If the script has 3 input parameters then check the param 1, param 2 and param 3 checkboxes and enter the input parameters.

- Check the "String length 0" checkbox if you want the job to be marked as failure if the return value is length 0 or nil.

Under the "Options" group you can set the following features for this job:

- Prestart Actions. Activities that should occur BEFORE the job starts.Click on this button to use the pre-start actions form. see: Setting Prestart Criteria

- Post-Job Actions. Activities that should occur AFTER the job ends. Click on this button to use the post-job actions form.  see: Setting Post-Job Criteria

- Notification Criteria. Automatic emails that are sent when the job starts or ends. Click on this button to use the notifications form.  see: Setting Notification Criteria

- Make this a secure job. This job can not be changed without entering the TechScheduler password.

- Put this job on hold. This job will appear on the job list in "Hold" status immediately.

When all email information has been entered, click on "Save" to save the email job to the job list.


Attaching files to an email

From the email job form you can invoke this form to attach files to an email.

Use the "Add" and "Delete" buttons to build a list of files (up to 255) that will be attached to the email job.

When you are done building the file list, click on the "Save" button to attach the file list to the email job.

Note: The more files you add, the longer the email job is going to take to run and send the email. Ideally, attach as few files and possible and try to keep them small.


Scheduling a Network Job

TechScheduler can be used to monitor your network connections and further connect or disconnect your system from network resources.

To Schedule a Network Job:

a. Click on the "Create a New Job" button on the main form or use the menu option.

b. Select the "Network Scheduler" button from the New Job Selection form.

Make the following selections on the email form:

1. Job Name. The alphanumeric unique name for this job. There is no length restriction though it should describe the goal of the job being scheduled.

Use the Calendar and Schedule buttons to schedule when this job will run.

Use the other entry\customization fields as follows:

Local Name. This is the local identifier for the resource to be connected to or disconnected from, ie: A: or LPT1:

Remote Name. This is the remote resource name to be connected to, disconnected from or Pinged. This can be a server name, ie: HOST1 or a UNC address, ie: //MYSYSTEM/SERVER1/THISDIR or an IP address, ie: 201.102.201.

Select the Network Action:

1. Connect.   This option lets you connect your system to a remote device.

- User Id. If required, enter a user-id for the remote device.

- Password. If required, enter a password for the user-id for the remote device.

- Device Type. Printers, Disks or Any remote device. If you specify "Any" then you may not specify a local name since the device will be logically connected.

2. Disconnect. Disconnect your system from a remote device.

- Disconnect even if there are files open. This will force a disconnect even if your system has remote files open for access.

3. Ping. Attempt to make contact with a remote device to determine whether it is active or whether you have a connection to it.

- # of Attempts.  The number of times each Ping will attempt to access the remote device. A Ping is considered successful if at least 1 attempt returns a success code even if other attempts in the same Ping fail.

- Timeout. The amount of time to spend attempting to Ping the remote device. The shorter the time, the more likely a failure will be reported.

Under the "Options" group you can set the following features for this job:

- Prestart Actions. Activities that should occur BEFORE the job starts.Click on this button to use the pre-start actions form. see: Setting Prestart Criteria

- Post-Job Actions. Activities that should occur AFTER the job ends. Click on this button to use the post-job actions form.  see: Setting Post-Job Criteria

- Notification Criteria. Automatic emails that are sent when the job starts or ends. Click on this button to use the notifications form.  see: Setting Notification Criteria

- Make this a secure job. This job can not be changed without entering the TechScheduler password.

- Put this job on hold. This job will appear on the job list in "Hold" status immediately.


Scheduling an FTP transfer job

TechScheduler allows you to schedule FTP uploads and downloads using Windows 95/NT built-in internet functions found in the WININET.DLL (which must be present).

To Schedule an FTP job:

a. Click on the "Create a New Job" button on the main form or use the menu option.

b. Select the "FTP Scheduler" button from the New Job Selection form.

Make the following selections on the ftp job form:

1. Job Name. The alphanumeric unique name for this job. There is no length restriction though it should describe the goal of the job being scheduled.

Use the Calendar and Schedule buttons to schedule when this job will run.

Use the other entry\customization fields as follows:

1. Server. Enter the name\ip address of the server.

2. Port. Enter the FTP port id. (Ports 0 - 65535 allowed)

3. User Id. Enter the FTP user id.

4. Password. Enter the FTP user id's password.

5. Use Firewall. If you are going through a firewall, check this box and enter the Firewall name. see: Using a firewall.

6. Anonymous logon. Check here to force the anonymous logon name \ password.

7. Select the type of FTP action that will be taken: Send Files to an FTP site, Get files from an FTP site or Delete files from an FTP site.

8. Local Directory. Enter the source\target FTP directory name on your local system.

9. Server Directory. Enter the source\target FTP directory name on the server.

10. Select source files. Use the "Local Browse", "Delete" and "FTP Browse" to select the source files for the FTP copy.

11. If you want to delete source files (either remote or local) after a successful FTP transfer then use the final checkbox on the window.

Under the "Options" group you can set the following features for this job:

- Prestart Actions. Activities that should occur BEFORE the job starts.Click on this button to use the pre-start actions form. see: Setting Prestart Criteria

- Post-Job Actions. Activities that should occur AFTER the job ends. Click on this button to use the post-job actions form.  see: Setting Post-Job Criteria

- Notification Criteria. Automatic emails that are sent when the job starts or ends. Click on this button to use the notifications form.  see: Setting Notification Criteria

- Make this a secure job. This job can not be changed without entering the TechScheduler password.

- Put this job on hold. This job will appear on the job list in "Hold" status immediately.

When all FTP job information has


Using a firewall

TechScheduler allows you to use your firewall (proxy) in order to access remote FTP servers.

Each firewall methodology is different, however in general:

1. Click on the "Use Firewall" checkbox.

2. Enter the name of your proxy\firewall in the edit field.

3. Under the Server Name field once again enter the proxy\firewall.

4. Under the User Name field enter both the username and the remote server name in a format like: DeanSoft@ftp.myserver.com or Anonymous@ftp.uploads.net

5. Enter the password under the Password field.

As stated before, your firewall may have a slightly different format to access remote servers, contact your LAN admin for help using the provided TechScheduler options.


Scheduling a Keystroke Emulation Job

You can use TechScheduler to emulate keystrokes sent to any visible or non-visible windows, much like a keyboard macro language.

Uses: Running a series of commands through an application without your presence, or keeping an online service connected by providing regular keyboard input.

To Schedule a Keystroke Emulator Job:

a. Click on the "Create a New Job" button on the main form or use the menu option.

b. Select the "Keystroke Emulator Scheduler" button from the New Job Selection form.

Make the following selections on the keystroke job form:

1. Job Name. The alphanumeric unique name for this job. There is no length restriction though it should describe the goal of the job being scheduled.

Use the Calendar and Schedule buttons to schedule when this job will run.

Use the other entry\customization fields as follows:

1. Window to Send Messages to.  TechScheduler lets you specify the target window that keystroke messages will be sent to.

a. By Window title. Techscheduler will find the window that has the text you specify in it's Title bar.

b. By Class name.  Each window belongs to a specific windows class. This option lets you specify the window class without having to know the contents of the title.

Enter the Window Title or Class Name or use the drop down lists to select from all windows and classes currently found on your system.

You can refresh the WINDOWS and CLASSES list by clicking on the "Refresh" button. A refresh is necessary after a Windows program has been started in order to show that window in the list.

Use the "Add" button to add a line of keystroke data. You may have up to 255 lines of data per job. see: Adding a Line of Keystroke Data.

Use the "Delete" button to delete the line of keystroke data you currently have highlighted.

Use the "Edit" button to edit the line of keystroke data you currently have highlighted.

Use the "Save" button to save the list of keystroke data to an "INI" style .KEY job.

If you want the job to read keystroke data from a file then check this option. Specify the keystroke file in the provided edit box.  Click here for information on the Keystroke File.

Under the "Options" group you can set the following features for this job:

- Prestart Actions. Activities that should occur BEFORE the job starts.Click on this button to use the pre-start actions form. see: Setting Prestart Criteria

- Post-Job Actions. Activities that should occur AFTER the job ends. Click on this button to use the post-job actions form.  see: Setting Post-Job Criteria

- Notification Criteria. Automatic emails that are sent when the job starts or ends. Click on this button to use the notifications form.  see: Setting Notification Criteria

- Make this a secure job. This job can not be changed without entering the TechScheduler password.

- Put this job on hold. This job will appear on the job list in "Hold" status immediately.

- Broadcast to all windows matching the target.  This feature will send the keystrokes to all windows (not just the first) that match the target window title or class name.

ie: If you want to send a File Save message to all Notepad documents you could schedule and {Alt}fs following by a line with a file name.


Keystroke File

A keystroke file needs to be in the following format in order for it to be used by the timer engine.

[job name]

sKeyControlx=

sKeyStringx=

iKeyPausex=

where x is a number 0 to 255 indicating command number.

Example:

[Test Key Job]

sKeyControl0={Ctrl}

sKeyString0=Test string

iKeyPause0=-100

sKeyControl1=

sKeyString1={TAB}Hi{ENTER}

iKeyPause1=0


Adding a Line of Keystroke Data

There are 3 elements to each line of keystroke data:

1. Control Keys. These are leading control characters, ie:  CTRL, ALT or SHIFT.  Use the dropdown list to select single or multiple control characters.

2. String. This is any text following a Control key or standalone.

3. Pause. The number of milliseconds to wait before executing the next line of keystroke data.


Scheduling a Glue-it! Notes Job

The "Glue-it!" Notes job is a simple way to post permanent or temporary messages onto your desktop.

To Schedule a "Glue-it!" Notes Job:

a. Click on the "Create a New Job" button on the main form or use the menu option.

b. Select the "Glue-it!" Notes Scheduler button from the New Job Selection form.

Make the following selections on the email form:

Job Name. The alphanumeric unique name for this job. There is no length restriction though it should describe the goal of the job being scheduled.

Use the Calendar and Schedule buttons to schedule when this job will run.

Use the other entry\customization fields as follows:

1. Select the Font and Color for the message you will be recording. Use the provided buttons for each.

2. Enter the text of the message. This can be multiple lines and can contain tabs and carriage returns.

3. Select the alignment for the message: left, right or center.

4. Enter the screen position for the message window. Note: When you move the actual message window it will automatically update these values.

5. If you want the message to consist of the contents of a file, enter or browse for the filename.

6. If you wish to have a WAVE sound file played when the message is displayed, enter or browse for the wav sound file and click on the provided checkbox.

Under the "Options" group you can set the following features for this job:

- Prestart Actions. Activities that should occur BEFORE the job starts.Click on this button to use the pre-start actions form. see: Setting Prestart Criteria

- Post-Job Actions. Activities that should occur AFTER the job ends. Click on this button to use the post-job actions form.  see: Setting Post-Job Criteria

- Notification Criteria. Automatic emails that are sent when the job starts or ends. Click on this button to use the notifications form.  see: Setting Notification Criteria

- Make this a secure job. This job can not be changed without entering the TechScheduler password.

- Put this job on hold. This job will appear on the job list in "Hold" status immediately.

- Allow Multiple copies. Most "Glue-it!" Notes can only appear on your desktop once, however setting this option will allow for multiple copies to appear, ie: Report logs, errors...

- Only show if file exists.  If you chose the option of displaying the contents of a file in your note, this option will cause a "Glue-it!" Notes to only be displayed if the file exists.

Once you have made your initial settings you can click on the "Preview" button to see how the "Glue-it!" will look. You can adjust its size and position during the preview.


Scheduling a RAS Dialup Job

With TechScheduler you can schedule jobs that use your RAS (dialup networking) settings to dial and connect to a remote device or disconnect an active RAS session.

Note: In order to use this feature you must have the Dial-Up Networking components that are distributed with Windows 95 (plus pack) or Windows NT.  The RAS options will be disabled if you do not have the components installed.

To Schedule a RAS Job:

a. Click on the "Create a New Job" button on the main form or use the menu option.

b. Select the "RAS Scheduler" button from the New Job Selection form.

Make the following selections on the email form:

1. Job Name. The alphanumeric unique name for this job. There is no length restriction though it should describe the goal of the job being scheduled.

Use the Calendar and Schedule buttons to schedule when this job will run.

Use the other entry\customization fields as follows:

1. RAS Connection. Select the RadioButton for "Connecting".

- Select the Dialup Networking job from the drop down list or enter the name in the edit field.

- If necessary enter the username and password required to connect to the remote device.

- If you wish to map a local drive to the connected RAS device then select this option and enter both the local drive id: "J:" and the remote id: "myserver\cdir".

2. RAS Disconnection. Select the RadioButton for "Disconnecting".

- Select the Dial-up Networking job from the drop down list or enter the name in the edit field.

- If you wish to un-map a previously mapped local drive before disconnecting then enter the local drive id:  "J:".

You may use the "Try RAS" button to start an debug RAS session to ensure your connection parameters are valid.

Under the "Options" group you can set the following features for this job:

- Prestart Actions. Activities that should occur BEFORE the job starts.Click on this button to use the pre-start actions form. see: Setting Prestart Criteria

- Post-Job Actions. Activities that should occur AFTER the job ends. Click on this button to use the post-job actions form.  see: Setting Post-Job Criteria

- Notification Criteria. Automatic emails that are sent when the job starts or ends. Click on this button to use the notifications form.  see: Setting Notification Criteria

- Make this a secure job. This job can not be changed without entering the TechScheduler password.

- Put this job on hold. This job will appear on the job list in "Hold" status immediately.


Scheduling a WatchDog Job

The WatchDog Job type allows you to set watches on tests you identify regarding your system. These tests can be used to trigger other jobs, emails or programs that react to the tests failing.

An example may be to set a test on Process "Msgr.exe" running. Set the PostJob actions to kick off program "Msgr.exe" if the job fails. This type of WatchDog job ensures "Msgr.exe" is always running, even if it crashes!

To Schedule a WatchDog Job:

a. Click on the "Create a New Job" button on the main form or use the menu option.

b. Select the WatchDog Scheduler button from the New Job Selection form.

Make the following selections on the email form:

Job Name. The alphanumeric unique name for this job. There is no length restriction though it should describe the goal of the job being scheduled.

Use the Calendar and Schedule buttons to schedule when this job will run.

Use the other entry\customization fields as follows:

Use the "Add" button to add a new WatchDog test. see: Adding a WatchDog Test.

Use the "Delete" button to delete a WatchDog test you select from the list.

Use the "Modify" button to change a WatchDog test you select from the list.

Under the "Options" group you can set the following features for this job:

- Prestart Actions. Activities that should occur BEFORE the job starts.Click on this button to use the pre-start actions form. see: Setting Prestart Criteria

- Post-Job Actions. Activities that should occur AFTER the job ends. Click on this button to use the post-job actions form.  see: Setting Post-Job Criteria

- Notification Criteria. Automatic emails that are sent when the job starts or ends. Click on this button to use the notifications form.  see: Setting Notification Criteria

- Make this a secure job. This job can not be changed without entering the TechScheduler password.

- Put this job on hold. This job will appear on the job list in "Hold" status immediately.

- Pause this Job if it fails. When and if the job fails it will be placed in Pause status until cleared by the user.

When all job options are selected click on the "Save" button. If there are any errors identified you will be notified.


Adding WatchDog Tests

The WatchDog Tests form allows you to add or modify a watchdog test that will appear in the WatchDog Job Test List.

Select from the following tests by clicking on the RadioButton matching the test.

1. Test for a Process running. Use this test to watch for a specific process (task) to be running on your system.

- Either enter the process name or use the "Browse Processes" button to select a process that is currently running.

2. Test for Disk Space. Use this test to watch that the available disk space on a drive does not go below the minimal level that you specify

- Use the Spinner control to specify the minimal disk space (in megabytes) to be allowed on the specified disk.

- Use the Drive list control to select the drive you will be watching.

3. Test for Maximum files in a directory. Use this test to watch that the number of files in a specific directory does not go above the number of files that you specify.

- Use the Spinner control to specify the maximum number of files in the directory.

- Enter the directory path or use the Directory Browse button to choose the directory to watch.

4. Test for system idle. If there is no keyboard or mouse activity on the active desktop for X minutes then the Watchdog job fails.

5. Test for NT Service running (for WinNT and Win2000 only). Watchdog job fails is NT Service is not running or stops.

Once you have made your selection click on the "Ok" button. Click on the "Cancel" button to return to the WatchDog Job form.


The TechScheduler Log

The scheduler log is a powerful way to trace each scheduler job or activity that takes place using TechScheduler.  The options for setting what gets written to the log are set using the configuration form.

To view the scheduler log, click on the "Log" tab on the main TechScheduler form.

The data that is viewed is "live" meaning that as new log entries occur, they will appear in the view.

Each log entry consists of several data elements:

- Date:  YYYY-MM-DD

- Time:  HH-MM-SS am/pm

- Job name or TechScheduler activity

- Success or Failure message.


Printing

When you select the print option from the main menu or the main toolbar you will be shown the Print Setup Screen. From the print setup screen you can make the necessary print setup selections and either view your print results using the Print Preview option or submit the print job to your selected printer.

In order to print a specific job from the job list, select it and the choose the print option. On the Print Setup form is a "Job Selection" control which will be enabled if a job was selected. From this control you can choose to print All Jobs or the selected job.

The following print controls can be set:

Print Settings:

Print Orientation - choose either portrait or landscape.

Paper Size - choose either letter or legal.

Job Print Options:

Scheduled jobs - Print jobs found on the scheduled job list.

Demand jobs - Print jobs found on the demand job list.

Job Details - For either scheduled or demand jobs print a summary of the job details.

Job Links - For either scheduled or demand jobs print the postjob links to other jobs or programs.

Job Registry - For either scheduled or demand jobs print a list of all registry settings for the job. Warning: the list for any given job is extensive and could print across several pages.

Log Print Options:

Job Log - Print entries from the standard job log.

Debug Log - Print entries from the debug log.

All Dates - For either standard or debug log print all dates found.

Today - For either standard or debug log print only entries found for today's date.

Specific Date -  For either standard or debug log print only entries found for the date you select.

You can save the settings you make as the default settings which will be reused for future print sessions by clicking on the "Save As Default" button on the form.

When you have completed making your print selections select one of the following actions:

Print - Submit the print job

Print Preview - Preview the print job

Cancel - Return to the Techscheduler main screen


Print Preview

The Print Preview form consists of a palette showing a truetype rendering of your print job as well as several controls.

Close - Return to the Print Setup form.

Print - Submit the print job.

Zoom Factor - Change the rendering percentage from 100% down to 60%.

Page Control - Use the Page Control to select a specific page, first/last page or decrease/advance the current page.


Using the Clipboard

TechScheduler's clipboard functions will copy jobs or log entries to the clipboard.  The "Copy" button on the toolbar is used to copy data to the clipboard.

If you are on the "Schedule" tab then the clipboard copy will take scheduler job information and format it on the clipboard.  If a single job is selected then only that job is copied. If no jobs are selected then the entire schedule is copied to the clipboard.


Forcing a Start-of-Day

The start-of-day process is used to refresh the daily job list, initialize scheduler parameters and optionally clean the log file.

You can use the "Force a Start-of-Day" button in the toolbar to force a start-of-day to occur. This process will mimick the process that occurs daily at 12:00:01.


Minimizing to the System Tray

The Windows 95/NT system tray is the small area in the taskbar that holds the clock and various system processes.

TechScheduler uses this area to hold its icon when it is minimized.  The icon is an animated graphic of a clock spinning.

To restore the icon back to the TechScheduler window either click on it or right-click and select the "Open" option.  If security is enabled then the security password will be requested before the window is restored.

When all jobs are suspended the clock icon will stop spinning.


Renaming a Job

You can rename any job from the master job list form. Follow this procedure:

1. On the job list, click on the job name slowly twice.

2. This will invoke the edit mode on the job name, you will see the "|" edit cursor appear by the job name.

3. Enter the new job name and press <Enter>.

4. You will be asked whether you want to rename the job.

5. Click on <Yes> to proceed.

6. The job name on the list as well as in the registry will be renamed.


Saving Jobs to a Disk File

This option allows you to save your job list to an INI style disk file. This is a useful way of making a backup of your job list.

When you invoke this function you will be asked to select a file name using the standard file browse dialog.  TechScheduler defaults to an extension of 'SAV' though you may override this extension.

Job settings in the save file follow a specific description unique to TechScheduler. Click here for that description.


Reading Jobs from a Disk File

You can use this option to read jobs from an INI style disk file. This option can be used to restore your job list if it becomes corrupted.

When you invoke this function you will be asked to select a file name using the standard file dialog. Files may be located locally or on a network drive.


Viewing the Registry File Associations

Windows 95 and NT use the process of file association to help determine which applications are automatically executed based on the extension of the file being accessed. A good example is PAINT being accessed when you click on a .bmp file from Explorer.

Using this tool found on the "Edit" menu you can view the file associations found in the Windows Registry.

The registered extensions are found in the list on the left. Click on any extension to get the association information.

Under the "Action" list you will see entries like OPEN and PRINT. We are only concerned with the "Open" action as this is what forces an application to be executed.

Click on the "Open" action to view the command line to be executed as well as the DDE entries.


Security Considerations

TechScheduler contains built-in flexible security that enables password protection at different levels of program usage:

1. Require a password to maximize TechScheduler from the System Tray. This level would allow you to start TechScheduler as an icon; thereby permitting jobs to run; the user could not maximize it from the system tray without the correct password.

2. Require a password to close TechScheduler. Before the user can close the program either program the window or the icon, he must enter the security password.

3. Require a password to change the configuration. Before the configuration form can be invoked the user must enter the security password.

4. Require a password to change or delete secure jobs in the job list. This allows you to have jobs which can not be modified without the correct password but does not prevent users from scheduling their own jobs.


Using the NT Service

If you are running Windows NT Client or Server you may choose to utilize the available TechScheduler NT Service. The service DOES NOT work on Windows 95!

All Job types except "Glue-it!" and "Keystroke Emulation" work from the service.

The TechScheduler NT Service allows the TechScheduler engine to run within the secure service layer under Windows NT 4.x and 5.x. This will allow you to schedule jobs to occur without you having to logon to Windows NT.

The supplied service: TKSHDSVC.EXE should be located in a directory that will always be available to the OS. Do not put it in the root or temporary directories. Select either the TechScheduler or the Windows\System directory. By Default the NT Service and it's matching DLL will be installed in the WinNT\System32 directory.

Follow these steps to install and activate the TechScheduler NT Service:

1. Invoke a Command Line shell (MS-DOS prompt). Change directory to where the service was installed (WinNT\System32).

2. Install the service by typing "tkshdsvc -install". There will be no reply unless an error occurs.

3. From Windows Control Panel invoke the SERVICES icon.

4. TechScheduler will appear on the list of services.

5. Choose startup options: "Manual" or "Automatic". Also check the option to allow the service to interact with the GUI. Also ensure that the TechScheduler service has System or Administrator authorization. Exit the Startup Options screen.

6. Start the service by clicking on the "Start" button.

Follow these steps to uninstall the TechScheduler NT Service:

1. From Windows Control Panel invoke the SERVICES icon.

2. Stop the service by clicking on the "Stop" button.

3. If you have TechScheduler set to start automatically, change this setting to "Manual"

4. Go to the directory where the TechScheduler NT Service resides.

5. Type: "tkshdsvc -remove"

6. Delete the file.

Warning: If you delete the tkshdsvc.exe file before doing step 5 above then your OS will flail helplessly trying to load and invoke the service!

see also: How To Test the NT Service.

see also: Controlling the Service from the UI.


How to Test the NT Service

Allowing the TechScheduler GUI and the TechScheduler NT Service to work together was a challenge. There may be certain circumstances where the NT Service does not seem to behave properly. Try some of these suggestions to solve the problem:

1. Rerun the Setup Wizard from the TechScheduler wizard. Set the registry destination to LOCAL_MACHINE.

2. Check the NT Service settings using Control Panel. TechScheduler must be set to interact with the GUI and must have Administrator or System privileges to run unattended. The service must also be set to startup automatically.

3. Make sure the "Service" screen from the TechScheduler GUI specifies notification of job changes to the Service.

Once done, follow these steps to try the GUI -> Service interaction:

1. From Control Panel -> Services Stop the TechScheduler Service.

2. From the TechScheduler GUI use the Configuration screen to invoke Debug logging.

3. From the TechScheduler GUI, enter a new job. Set it to run 2-5 minutes away and invoke a simple program like CALC.EXE.

4. Exit the TechScheduler GUI.

5. From Control Panel -> Services Start the TechScheduler Service.

6. Watch to see if the job kicks off.

7. If not, check the debug log to see if there are entries for both the GUI and NT Service. This log is valuable to us when assisting you with support.


Controlling the Service from the UI

Warning: We do not recommend running the TechScheduler NT Service at the same time as TechScheduler. However if you do you may get an operating system warning message regarding CACHE. Click Ok and continue.

When TechScheduler is invoked on Windows NT a new menu option will appear on the main menu: "Service".

If you click this option a Service control form will appear. This is the link between TechScheduler and the NT Service.

From the information on this form you can determine whether the service is active and processing jobs and what the last Start and End times of the service are.

1. Start and Stop the Service. You can use the provided button to suspend job processing in the service and then resume it again. This invokes Service Control Manager logic which can be verified by using Control Panel -> services.

2. Send job updates. If you check this checkbox then any changes you make to the job schedules will be automatically posted to the service.


Setting Program Error Level

TechScheduler has the ability to schedule programs and then act or report on their success or failure at completion.

However most programs do not return any meaningful completion codes that can be used by TechScheduler, in fact most programs return an ERRORLEVEL of "0" regardless of how they complete.

If you are going to develop programs that can be effectively used by TechScheduler to report on success or failure then try to cause your program to exit with a meaningful errorlevel.

Using Delphi:  You can use the Halt(x) command where "x" is the errorlevel to set on exit.  If your program ends in some non-standard mode then you could set "x" to a value like "99".

The same method holds true with C++, Visual Basic and Powerbuilder.

Other methods of reporting success or failure may be the existance of a file or a specific key value set in an INI file.


Using the Debug Mode

We have included a debug more that allows you to get extremely detailed information on jobs and the timer engine in the TechScheduler log.

Be warned that the quantity of log entries generated can quickly fill the log file, use this options sparingly.

To invoke the debug mode go to the "Logging" tab on the configuration form and check the "Log Debug Info" checkbox at the bottom of the form.


Registration Information

TechScheduler Registration Fee: $19.99 + shipping and handling (see table below)

TechScheduler with NT Service Registration Fee: $29.99 + shipping and handling (see table below)

Registration options:

1. Use your visa\mc\amex on several secure online registration sites. Use your browser to go to: "http://www.qwerks.com" or "http://www.swregnet.com" or "http://www.regsoft.com".

2. Call Toll Free (u.s. only) 1-877-734-7638 Mon-Fri 9:00 am - 10:00 pm (mst).

3. Canada, Mexico & International call 1-770-497-9126

4. U.S. and International FAX: 1-770-497-9234 (click here for the Fax & Email order form)

5. Email ordering: send an email to winutils@aol.com (click here for the Fax & Email order form)

6. You may also send a cheque for the purchase price + shipping & handling to Dean Software Design  P.O. Box 13032  Mill Creek, WA 98082-1032

Shipping & Handling Charges:

U.S.: $1.00

Canada & Mexico: $2.00

Europe, Asia, other: $3.00

Overnight U.S. only: $12.00

You must provide the information on the order form for Fax, Email and Postal registrations.

Click here to view and print the order form!

Multiple Copy and Site License prices for TechScheduler:

  1 - 10 copies:   $ 19.99 per copy

 11 - 20 copies:   $190.00 + $19.00 per copy over 10

 21 - 50 copies:   $360.00 + $18.00 per copy over 20

 51 - 100 copies:  $850.00 + $17.00 per copy over 50

101+  or site licenses call (425) 316-8645, Email or Write us!

Multiple Copy and Site License prices for TechScheduler with NT Service:

  1 - 10 copies:   $ 29.99 per copy

 11 - 20 copies:   $290.00 + $29.00 per copy over 10

 21 - 50 copies:   $560.00 + $28.00 per copy over 20

 51 - 100 copies:  $1350.00 + $27.00 per copy over 50

101+  or site licenses call (425) 316-8645, Email or Write us!


Mail Order Form

To: Dean Software Design

      P.O. Box 13032

      Mill Creek, WA 98082-1032

From: __________________________________

         __________________________________

         __________________________________

Phone: (       ) _________________________

Email: _________________________________

I would like to order:

 ________ copies of TechScheduler 95/NT at $19.99 per copy

________ copies of TechScheduler 95/NT with NT Service at $29.99 per copy

For every copy ordered, add the following shipping and handling fee:  $________

U.S. $1.50 per copy. Canada & Mexico: $2.00 per copy.  Europe & Asia: $3.00 per copy.

Overnight delivery (u.s.) $12.00

Total purchase amount: $________________

Payment: Enclosed Check or Money order for $____________________

My Visa ______ or MC ______ number is: _______________________ Expiry Date: ______________

Select 1 ordering option:

___ Mail me a diskette & manual

___ Instead of mailing a diskette, I would like a key for version: __________ emailed to: ____________________________


Fax & Email Order Form

Your Name:

Company Name:

Billing Address (address credit card bill is sent to):

   Street Address:

   City:

   State\Prov:

   Zipcode:

   Country:

Mailing address (if different than above):

   Street Address:

   City:

   State\Prov:

   Zipcode:

   Country:

Home Phone Number:

Work Phone Number:

E-Mail Address:

Credit Card Information

   Type (visa\mc\amex):

   Account Number:

   Expiration Date:

Software To Order

   Title:

   Quantity:

   Total Software Amount:

   Total Shipping & handling amount:

   Total Order Amount:

   I would like a registration key sent to me (y/n):

If Faxed or e-mailed, please include the following language (and sign if Faxed):

I authorize Dean Software Design and its agents to bill my credit card and agree to pay the total amount according to card issuer agreement.

___________________________            __________________

Signature                                                   Date


How To Load New Jobs Into TechScheduler

Q. How can dynamically create new jobs outside of the scheduler.

A1. You can have any program or process create a new TechScheduler job by using the Registry keys provided.

Under the HKEY_CURRENT_USER\software\Dean Software\TechScheduler\TimedJobs section of the registry you can add new keys and data values (use other jobs as tempplates).

To force TechScheduler to look for new jobs set the 'Automatic Refresh from Registry' option on the 'List Data' tab of the configuration form. This will force TechScheduler to refresh its job list from the registry automatically.

A2. You can also use the 'Automatic Refresh from File' option on the configuration form to force TechScheduler to read jobs from ini style files.

The best way to handle this task is create your job normally and then save it as a file, you can then use this file as your tempplate for future job files.


How To Keep Your Online Service Connected

You can use TechScheduler to act as 'your finger' pressing keys to keep your online service from disconnecting due to inactivity.  We are not advocating this action, however if you find it necessary then you can use our program to help.

1. Remote Access Service (RAS).

When you use RAS to dial certain servers, they may have an automatic disconnect due to inactivity.

You can schedule a couple of different jobs that will keep benign activity happening:

a. FTP transfer. Create a small file (ie:a.txt) and have a job scheduled every few minutes. This job would transfer the file to the server and overwrite the old copy.

b. Determine the keystrokes necessary to perform a directory or folder list. Create a job to list files or folders every few minutes.

2. America Online

Many of us use America Online for their channels as well as for internet.  However, if you walk away from your keyboard for a few minutes AOL may disconnect you.

Using Internet Explorer with AOL minimized you stand the chance of inactivity killing your session more frequently because AOL does not track activity when Internet Explorer is active.

There are many ways to issue activity on AOL using TechScheduler, however an easy one to use as a starting spot would be:

- Create a Keystroke Emulation job.

- Schedule every 10 minutes every day

- Target window:  "America Online"

- Keystroke line 1:  {Alt}Go    Pause:600

- Keystroke line 2: {Enter}     Pause 0

- Set option to Broadcast to all windows ON.

What will this do? Every 10 minutes TechScheduler will get the online clock and then press Enter to get rid of it....


Contacting Dean Software Design

Phone: (425) 316-8645

Email: winutils@aol.com

url:  http://www.winutils.com

Dean Software Design

P.O. Box 13032

Mill Creek, WA 98082-1032


License & Copyright

TechScheduler is Copyright by Dean Software Design. You should carefully read all the terms and conditions of this agreement prior to using this software.

1. COPYRIGHT. You may not sublicense, assign or transfer the license or the program except as expressly provided in this Agreement. Any attempt otherwise to sublicense, assign or transfer any of the rights, duties or obligations here under is void.

2. LICENSE. You have the non-exclusive right to use this software.  Yo may not distribute copies of the software or documentation to others.  This software can only be used on a single computer unless multi-computer or site licenses are purchased.  You may not use, copy, modify or transfer the software or any copy, modification or merged portion in whole or in part, except as expressly provided for in this license.

3. BACK-UP AND TRANSFER. You may make backup copies of TechScheduler, but not of the documentation.  Each backup copy must include the copyright notice.  Installation of TechScheduler on your hard disk is permitted subject to these conditions.  You may not sell, loan or give away copies of TechScheduler.

4. TERM.  This license is effective until terminated.  You may terminate it at any time by destroying the software together with all copies, modifications and merged portions in any form.

5. LIMITED WARRANTY.  This software is provided "as is" without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose.  The entire risk as to the quality and performance or the software is with you.  Should the software prove defective, you (and not Dean Software Design or an authorized agent) assume the entire cost of all necessary servicing, repair or correction.  Some states do not allow the exclusion of implied warranties, so the above exclusion may not apply to you.  This warranty gives you specific legal rights and you may also have other rights which vary from state to state.

Dean Software Design does not warrant that the functions contained in the software will meet your requirements or that the operation of the software will be uninterrupted or error free.  However, Dean Software Design warrants the supplied diskettes to be free from defects in materials and workmanship under normal use for a period of ninety (90) days from the date of delivery to you as evidenced by a copy of your receipt.

This software's function is to provide scheduling capabilities under Windows and its related environment, it is not to be used as a tool to infringe upon the rights of individuals using this software with or without their knowledge,  including but not limited to  matters of privacy. Dean Software Design will not be liable for any damages or claims by any other party related to the use of this program in any way that falls outside any local, state or federal laws that may apply.

IN NO EVENT WILL DEAN SOFTWARE DESIGN BE LIABLE TO YOU FOR ANY DAMAGES, INCLUDING ANY LOST PROFITS, LOST SAVINGS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE SUCH SOFTWARE EVEN IF DEAN SOFTWARE DESIGN OR ANY AUTHORIZED AGENT HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY. Some states do not allow the limitation or exlcusion of liability for incidental or consequential damages so the above limitation or exclusion may not apply to you.

This agreement will be governed by the laws of the State of Washington. Should you have any questions concerning this Agreement, you may contact Dean Software Design, PO Box 13032, MillCreek, WA 98082-1032.

YOU ACKNOWLEGE THAT YOU HAVE READ THIS AGREEMENT, UNDERSTAND IT, AND AGREE TO BE BOUND BY ITS TERMS AND CONDITIONS.  You further agree that it is the complete and exclusive statement of the agreement between us which supersedes any proposal or prior agreement, oral or written.

Microsoft, MS-DOS and Windows are registered trademarks of Microsoft, Inc..


Unregistered Version License & Disclaimer

Users of TechScheduler must accept this disclaimer of warranty:

"TechScheduler is supplied as is. The author disclaims all warranties, expressed or implied, including, without limitation, the warranties of merchantability and of fitness for any purpose. The author assumes no liability for damages, direct or consequential, which may result from the use of TechScheduler."

TechScheduler is a "shareware program" and is provided at no charge to the user for evaluation. Feel free to share it with your friends, but please do not give it away altered or as part of another system. The essence of "user-supported" software is to provide personal computer users with quality software without high prices, and yet to provide incentive for programmers to continue to develop new products. If you find this program useful and find that you are using TechScheduler and continue to use TechScheduler after a reasonable trial period, you must register it!  The registration fee will license one copy for use on any one computer at any one time.

Commercial users of TechScheduler must register and pay for their copies of TechScheduler within 30 days of first use or their license is withdrawn. Site-License arrangements may be made by contacting Dean Software Design.

Anyone distributing TechScheduler for any kind of remuneration must first contact Dean Software Design at the indicated address for authorization. This authorization will be automatically granted to distributors recognized by the (ASP) as adhering to its guidelines for shareware distributors, and such distributors may begin offering TechScheduler immediately (However Dean Software Design must still be advised so that the distributor can be kept up-to-date with the latest version of TechScheduler).

You are encouraged to pass a copy of TechScheduler along to your friends for evaluation. Please encourage them to register their copy if they find that they can use it.

All registered users receive free technical support for 90 days from the date of registration. Also all registered users receive a free upgrade to the next version of this program when that version becomes available. To report bugs, receive help and bug fixes please send an EMail to:

Dean Software Design

[DeanSoft@Compuserve.Com]

or, if you do not have access to Email, write to us!

Definition Of Shareware

Shareware distribution gives users a chance to try software before buying it. If you try a Shareware program and continue using it, you are expected to register. Individual programs differ on details -- some request registration while others require it, some specify a maximum trial period. With registration, you get anything from the simple right to continue using the software to an updated program with printed manual.

Copyright laws apply to both Shareware and commercial software, and the copyright holder retains all rights, with a few specific exceptions as stated below. Shareware authors are accomplished programmers, just like commercial authors, and the programs are of comparable quality. (In both cases, there are good programs and bad ones!) The main difference is in the method of distribution. The author specifically grants the right to copy and distribute the software, either to all and sundry or to a specific group. For example, some authors require written permission before a commercial disk vendor may copy their Shareware.

Shareware is a distribution method, not a type of software. You should find software that suits your needs and pocketbook, whether it's commercial or Shareware. The Shareware system makes fitting your needs easier, because you can try before you buy. And because the overhead is low, prices are low also. Shareware has the ultimate money-back guarantee - if you don't use the product, you don't pay for it.


Scheduling a Windows NT job

This job type is specific to Windows NT and will log errors if you attempt to run it under Windows 95.

To Schedule a Windows NT Job:

a. Click on the "Create a New Job" button on the main form or use the menu option.

b. Select the "Windows NT Scheduler" button from the New Job Selection form.

Make the following selections on the email form:

1. Job Name. The alphanumeric unique name for this job. There is no length restriction though it should describe the goal of the job being scheduled.

Use the Calendar and Schedule tabs to schedule when this job will run.

Use the other entry\customization fields as follows:

1. Select the type of Windows NT job command to schedule:

REXEC (remote execution)

SU (substitute user)

NT Services

2. Enter login information which is common to both command types:

- User Name. Valid user name on the remote system or under the Windows NT system.

- Password.

- Command. For REXEC jobs this may be any valid command or program on the remote system. For SU commands this may only be valid Windows NT commands, programs or batch files.

3. REXEC specific data.

- Enter the IP address or system name for the remote server. You must have an IP connection to that system.

- Enter or browse for the name of the local\network file to which results of the REXEC will be logged.  You can specify this file as an attachment to a success\failure email for this job.

4. SU specific data.

- Enter the Windows NT domain under which the User will be logged. The user must have rights on that domain for the job to succeed.

- Terminate Command Shell. Check this option if you want TechScheduler to immediately terminate the command shell created for the SU.

You may use the "Quick Test" button to start a debug Windows NT job session to ensure your commands and parameters are valid. The results will be shown in the result box.

Under the "Options" group you can set the following features for this job:

- Prestart Actions. Activities that should occur BEFORE the job starts.Click on this button to use the pre-start actions form. see: Setting Prestart Criteria

- Post-Job Actions. Activities that should occur AFTER the job ends. Click on this button to use the post-job actions form.  see: Setting Post-Job Criteria

- Notification Criteria. Automatic emails that are sent when the job starts or ends. Click on this button to use the notifications form.  see: Setting Notification Criteria

- Make this a secure job. This job can not be changed without entering the TechScheduler password.

- Put this job on hold. This job will appear on the job list in "Hold" status immediately.


REXEC Command

Runs commands on remote computers running the REXEC service. Rexec authenticates the user name on the remote computer before executing the specified command. This command is available only if the TCP/IP protocol has been installed.

Usage from the Windows NT command line:

rexec computer [-l username] [-n] command

Parameters

computer - Specifies the remote computer on which to run command.

-l username - Specifies the user name on the remote computer.

-n - Redirects the input of rexec to NULL.

command - Specifies the command to run.

Standard Operation

Rexec prompts the user for a password and authenticates the given password on the remote computer. If the authentication succeeds, the command is executed.

Rexec copies standard input to the remote command, standard output to its standard output, and standard error to its standard error. Interrupt, quit, and terminate signals are propagated to the remote command. Rexec normally terminates when the remote command does.

Using Redirection Symbols

Use quotation marks around redirection symbols to redirect onto the remote computer. If quotation marks are not used, redirection occurs on the local computer. For example, the following command appends the remote file remotefile to the local file localfile:

rexec othercomputer cat remotefile >> localfile

The following command appends the remote file remotefile to the remote file otherremotefile:

rexec othercomputer cat remotefile ">>" otherremotefile

Using Interactive Commands

You cannot run most interactive commands. For example, vi or emacs cannot be run using rexec. Use telnet to run interactive commands.


SU Command

Runs Windows NT commands under another user''s account. The following information describes SU usage under Windows NT and how users must be setup

SU [[newdomain\][newuser] [command-line]]

[newdomain\]	Specifies desired domain logon (\\ is ok also).

[newuser]	Specifies the name of the user to be impersonated.

The default is Administrator.

[command-line]	Specifies the command to be executed, with parameters.

The default is CMD (a new NT Console).

example:  SU USERS/abcd net name

Requires three extended NT privileges:

GetPrivilegeDisplayName(SE_TCB_NAME)

GetPrivilegeDisplayName(SE_ASSIGNPRIMARYTOKEN_NAME)

GetPrivilegeDisplayName(SE_INCREASE_QUOTA_NAME)

These can be granted as User Rights with NT User Manager. The easiest way to selectively grant the three privileges is:

1-	Start the User Manager (MUSRMGR)

2-	Create a new group (e.g. "SU Users")

3-	Add the three privileges to the group (via Policies\User Rights):

"Act as part of the operating system"  	- SeTcbPrivilege

"Increase quotas"                     	- SeIncreaseQuota

"Replace a process level token"        	- SeAssignPrimaryToken

NOTE: The three privileges will only be visible if you check "Show Advanced User Rights" in the dialog box.

4-  Add the desired users to the new group (via User\Properties\Group)


Remote Job Viewer

TechScheduler includes a remote job viewer program which runs independently of the TechScheduler GUI or the TechScheduler NT Service.

The remote job viewer allows the user to view the status of jobs running in the GUI or the NT service without being able to modify or change the jobs.

Jobs can be viewed on multiple systems running TechScheduler as long as each copy of TechScheduler is setup to save remote viewing information.

To setup TechScheduler to save remote viewing information use the "Remote" tab on the configuration form.

The TechScheduler remote viewer program can be found in the TechScheduler program group or can be run directly from the directory where you installed TechScheduler. The program name is tkshview.exe.

Using TechScheduler Remote Job Viewer

•	Start the remote job viewer program.

•	Configure the remote TechScheduler systems to monitor.

•	Select the system to monitor from the dropdown list or Select all systems to monitor.

•	Use the Log tab to view the TechScheduler log for each system.


Remotely Updating TechScheduler

TechScheduler has the capability of accepting commands from remote sources which can be used to update schedules or affect the operation of the local TechScheduler process.

This process requires that the user configure TechScheduler on their local system to accept remote updates, which types of updates are permitted and the directory in which TechScheduler will look for update notifications.

Though there are many methods of issuing messages between systems, the key method chosen to implement this feature involves the use of INI style job files which remote systems can place in the specified directory on the local system.  These files can be issued by Windows Clients and Servers, Unix systems, Mainframe systems and any other host system which can access the specified directory on the local system either via drive mapping or by FTP or TFTP. There may be other methods of having the job file placed on the local system; no limitation is placed on the method, only the content.

Job files can be created and stored remotely or they can be created on-the-fly by other applications which may need to have specific job parameters executed.

The job file format

Each job file must have a valid header section identifying it as an update file to the local copy of TechScheduler. The header section must have a section name and file identifier key:

[SaveFileInfo]

sFileType=TechScheduler Remote Update File

and a job type identifier key:

sUpdateType=1

Valid job type identifiers are:

1 - Add a job

2 - Delete a job

3 - Edit a job

4 - Suspend a job

5 - Resume a job

6 - Suspend All Jobs

7 - Resume All Jobs

8 - Run a job

For job types 6 and 7 you only need to provide a header section in the job file.

With job types 2, 4, 5 and 8 you are required to provide a job identifier section with only a job identifier key. An example of a job identifier key would be:

[My Job]

sJobName=My Job

For job types 1 and 3 you must provide the job identifier key as shown above but also the entire job structure in the form of keys and data. The easiest way to create the job format in the necessary structure is to use the "Save Job to File" option on the TechScheduler menu. Cut the job identifier section to use in your remote control job file.

Here are some examples of job files:

Delete a job

[SaveFileInfo]

sFileType=TechScheduler Remote Update File

sUpdateType=2

[My Job]

sJobName=My Job

Suspend All jobs

[SaveFileInfo]

sFileType=TechScheduler Remote Update File

sUpdateType=6

Add a new job

[SaveFileInfo]

sFileType=TechScheduler Remote Update File

sUpdateType=1

[close calc]

sJobName=close calc

iJobType=9

sLastModified=1998-06-16 9:34:10 PM

iFrequency=1

bExclDates=0

iRunLate=0

sFrequency Data=

iCustomTimeType=5

iHour=21

iMin=34

iSec=0

iCustomTimeHourMin=0

bCustStartFlag=0

bCustEndFlag=0

iCustStartHr=0

iCustStartMin=0

iCustEndHr=0

iCustEndMin=0

iCheckPreStart=0

bCheckStartDir=0

bCheckDiskFree=0

iDiskFreeMb=0

sDiskFreeDrive=j

sStartDir=

bCheckFileExist=0

sPreStartFile=

iPreFileFlag=0

bNotifyCode=0

iNotifyType=-1

iNotifyStarts=0

iNotifyEnds=0

iNotifyStartf=0

iNotifyEndf=0

iNotifyFailInfo=0

sNotifyMessageSuccStart=

sNotifyMessageSuccEnd=

sNotifyMessageFailStart=

sNotifyMessageFailEnd=

sNotifyFileSucc=

sNotifyFileFail=

sNotifySubjSucc=Automatic Email Notification

sNotifySubjFail=Automatic Email Notification

iPostSuccessCode=0

iPostFailCode=0

bPostRetry=0

iPostMaxRetries=1

iPostRetryDelay=3

iPostDelayMinSec=0

sLastStartDate=

sLastStartTime=

sLastEndDate=1998-07-04

sLastEndTime=3:00:52 PM

bLastStartStatus=1

bHold=0

bSecureJob=0

bPauseOnFail=0

bDeleteJob=0

iKeyWindowType=0

sKeyWindowName=Calculator

bKeyWindowToAll=0

sKeyControl0={Alt}

sKeyString0= c

iKeyPause0=0

Additional details on the description of a job file can be obtained by clicking here.


Job settings in Job or Save Files

The data body section will generally have some or all of the flags that appear in the standard job entries list below and may contain additional flags depending on the type of job.

Standard Job entries (shared by all job types )

Job Specifiers:

sJobName	- name of the job

iJobType	- value: 0 - 9

bUpdateOnly	- true or false, if True existing jobs will be updated, not replaced.

Calendar / Schedule Data:

sFrequency Data	- indicates days of week to process: 1010100

sExcl0	 	- Dates to exclude from processing, sExcl0, sExcl1...

bHold	- value: 0=active 1=hold 2=paused

iFrequency	- value indicating schedule frequency

bExclDates	 	- Exclude certain dates. 0=false 1=true

iCustomTimeType	- Use custom time. 0=no -1=demand 1-6 custom types.

iHour	- Hour to run job. 24hr format

iMin	- Minute to run job.

iSec	- Second to run job

iCustomTimeHourMin 	- Hr\Min for a custom time type

sCustomTime0	- List times to run: sCustomTime0, sCustomTime1 ...

bCustStartFlag	 	- Check earliest start time: 0=false 1=true

bCustEndFlag	- Check latest start time: 0=false 1=true

iCustStartHr	- Earliest start hour

iCustStartMin	- Earliest start min

iCustEndHr	 	- Latest start hour

iCustEndMin	- Latest start min

iRunLate=0	- minutes to allow job to be run after scheduled time 0=off >0=mins

Prestart Criteria:

bCheckPreStart	- check prestart criteria: 1=true 0=false

bCheckStartDir	- set starting directory: 1=true 0=false

bCheckDiskFree	- check for disk free space: 1=true 0=false

iDiskFreeMb=10	- amount of disk space needed in mb

sDiskFreeDrive	- drive to check for free space

sStartDir	- the starting directory to set to, ie: c:\windows

bCheckFileExist	- Check to see if a file exists: 1=true 0=false

sPreStartFile	- File to check for, ie: c:\windows\autoexec.bat

iPreFileFlag	- 1=file must exist 0=file must not exist

Notification Criteria:

bNotifyCode	- use notification criteria: 0=false 1=true

iNotifyType	- type of email: 1=smtp 0=mapi

iNotifyStarts	- notify on job start successful: 0=false 1=true

iNotifyEnds	- notify on job end successful: 0=false 1=true

iNotifyStartf	- notify on job start failure: 0=false 1=true

iNotifyEndf	- notify on job end failure: 0=false 1=true

iNotifyFailInfo	- attempt to show internal failure info: 0=false 1=true

sNotifyMessageSuccStart	- message to show on successful start

sNotifyMessageSuccEnd	- message to show on successful end

sNotifyMessageFailStart	- message to show on failed start

sNotifyMessageFailEnd	- message to show on ending failure

sNotifyFileSucc	- file to attach on success notification

sNotifyFileFail	- file to attach on failure notification

sNotifySubjSucc	- email subject for successful notification

sNotifySubjFail	- email subject for failure notification

sNotifyRecipSucc0	- email recipients for successful jobs, suffix 0-255

sNotifyRecipFail0	- email recipients for failed jobs, suffix 0-255

Post-Job Actions:

iPostSuccessCode	- on success do this: 0=off 1=job 2=file

iPostFailCode	- on success do this: 0=off 1=job 2=file

sPostSuccessFile	- file or job name to execute on success

sPostFailFile	- file or job name to execute on failure

bPostRetry	- retry a failed job: 0=false 1=true

iPostMaxRetries	- maximum number of retries

iPostRetryDelay	- delay between retries: min or sec, see iPostDelayMinSec

iPostDelayMinSec	- minute or second retry flag: 0=minutes 1=seconds

Job History keys:

sLastStartDate	- Last successful start date for the job

sLastStartTime	- Last successful start time for the job

sLastEndDate	- Last end date for the job

sLastEndTime	- Last end time for the job

bLastStartStatus	- Last start status 1=successful 0=failed

General Options:

bSecureJob	- job is secure from mod: 0=false 1=true

bPauseOnFail	- pause job on failure: 0=false 1=true

bHold	- initially place job in hold status: 0=false 1=true

bDeleteJob	- delete job on successful completion: 0=false 1=tru

Program Execution Job form entries:

sProgram	 	- program to execute

sCommand Line	- command line parameters

bDeleteJob	 	- Delete successful jobs. 0=false 1=true

bEndScreenSaver	- Attempt to kill active screensaver. 0=false 1=true

bChildProcess	- Attempt to terminate child processes. 0=false 1=true

Program Execution Success\Failure form entries:

bErrLevSuccess	- use error level setting: 0=false 1=true

bUseErrLevel	- error level to check for, ie: 1

bUseFileExist	- use file existance checking: 0=false 1=true

bFileExExist	- file must exist: 0=true 1=false

bFileExSuccess	- success or failure flag: 0=success 1=failure

sFileExFileName	- file to check for existance

bSuccessAnd1	- "And" the errorlevel and subsequent tests 0=false 1=true

bSuccessAnd2	- "And" the file existance and subsequent tests 	0=false 1=true

bUseIniKey	- Check INI key settings: 0=false 1=true

bIniFileEqual	- is key equal: 0=false 1=true

iErrLevEqual	- is error level equal: 0=equal 1=not equal

iErrLevValue	- value of errorlevel to check

sKeyName	- INI file key name

sSectionName	- INI file section name

sKeyValue	- check key value: 0=false 1=true

sIniFileName	- INI file to check

Program Execution System Settings form entries:

iWinType	 	- Type of window 0=Normal (default)

iWinAppearance	 	- 0=normal 1=maximize 2=minimize 3=hidden

iWinPriority	 	- 0=normal

iWinApp	- 0=Create Process 1=Create Process (app) 2=Shell Execute

Program Execution Termination Settings form entries:

iTerminationType 	- Termination type indicator code 0=off

iTerminationDur	- Duration in minutes until termination

iTerminationHour 	- Time HH for termination

iTerminationMin	- Time MM for termination

iTerminationSec	- Time SS for termination

iTerminationLevel 	- Exit code to set on termination 0=default


Scheduling a Zip/Unzip Job

The Zip/Unzip job provides integrated capability to build or extract files into industry standard zip (2.04g) files.  This functionality can be used as a highly efficient backup\restore method or as a means to archive data from your system.

To schedule a Zip/Unzip job:

a. Click on the "Create a New Job" button on the main form or use the menu option.

b. Select the "Create a Zip/Unzip Job" option.

The "Zip/Unzip Job Entry" form will appear. To close the form, click on the "Save" or "Cancel" buttons.

The following fields are required entry:

1. Job Name. The alphanumeric unique name for this job. There is no length restriction though it should describe the goal\program being scheduled.

On the Settings Tab there are 3 further tabs allowing entry and modification of the zip/unzip specific parameters.

General Tab

- Select whether the job will zip files or unzip files.

- Use the "Try" button to run the job with the parameters entered.

UnZip Tab

- Enter or browse for the zip file to unzip.

- Select whether to unzip to a specific folder or whether to create a new dated folder to unzip into.

- Enter the folder name to unzip into or the base folder in which the new dated folder will be created.

- Select Unzip All Files option. If not selected you must build a list of files to unzip.

- Overwrite existing files will replace same named files automatically in the destination folder.

- Extract directory names will build a tree of directory\folder names exactly as built when zipped.

- Only refresh newer destination files indicates that if a file exists in the target folder it will only be replaced if the new file is newer.

- "Get List of Files" button provides a list of all files in the selected zip. From the list that is shown you can select the files you wish to be extracted (see below).

- "Selected Files Only" button will take only the files you select and build a new list of files to extract.

Under the "Options" group you can set the following features for this job:

Zip Tab

- Select option to create a specific zip file or to create a dated zip file.  Dated zip files are in the format yyyymmdd.x where x is a number starting a zero and incrementing to allow multiple dated zip files per day.

- Enter a specific zip file name or enter the destination folder where a dated zip file will be placed. Either option can be local or mapped network drive.

- Use the "Add Files" button to invoke the dialog allowing selection of files and folders to put in the zip.

- Use the "Delete Files" button to delete a selection from the list.

- Use the "Edit Files" button to edit a selection on the list.

- Select "Add Dir Names" if you want the zip to contain the full directory names that will be built on unzip.

- Select "Add Hidden Files" to allow inclusion of hidden files (ie: system) in the zip.

The Options Tab

- Prestart Actions. Activities that should occur BEFORE the job starts.Click on this button to use the pre-start actions form. see: Setting Prestart Criteria

- Post-Job Actions. Activities that should occur AFTER the job ends. Click on this button to use the post-job actions form.  see: Setting Post-Job Criteria

- Notification Criteria. Automatic emails that are sent when the job starts or ends. Click on this button to use the notifications form.  see: Setting Notification Criteria

- Make this a secure job. This job can not be changed without entering the TechScheduler password.

- Put this job on hold. This job will appear on the job list in "Hold" status immediately.

When the "Save" button is clicked, fields are validated and you will be shown errors in entry and be forced to correct them before the job is added to the scheduler queue.


Global Exclusion Calendar

TechScheduler allows you to specify dates and times in which no jobs will run.

From the Main Menu, select the "Global Calendar" option from the Edit menu. In addition you can invoke this form from any job on the "Exclude" tab.

If you wish to exclude specific dates, select the "Exclude These Dates" checkbox.

Use the "add" and  "delete" buttons and the visual calendar to select and modify the excluded dates list.

If you want to prevent jobs from running before a specific time, select the "Don't run job before" checkbox.

use the Spinedit control to specify the earliest hour and minute that jobs are allowed.

If you want to prevent jobs from running after a specific time, select the "Don't run job after" checkbox.

use the Spinedit control to specify the latest hour and minute that jobs are allowed.

When complete, click on the "Ok" button to save your new settings.


Diagnosing TechScheduler Errors

Program Jobs: CREATEPROCESS failures.

Value	Meaning

2	The specified file was not found.

10B	The specified path was not found.

Program Jobs: SHELLEXECUTE failures.

Value	Meaning

0	The operating system is out of memory or resources.

2	The specified file was not found.

3	The specified path was not found.

11	The .EXE file is invalid (non-Win32 .EXE or error in .EXE image).

5	Windows 95 only: The operating system denied access to the specified file.

27	The filename association is incomplete or invalid.

30	The DDE transaction could not be completed because other DDE transactions were being processed.

29	The DDE transaction failed.

28	The DDE transaction could not be completed because the request timed out.

32	Windows 95 only: The specified dynamic-link library was not found.

31	There is no application associated with the given filename extension.

8	Windows 95 only: There was not enough memory to complete the operation.

26	A sharing violation occurred.

More Errors listed in Win32 API.


Programming the TechScheduler API

The TechScheduler programming API is based on setting values in a key located in the TechScheduler registry area.

TechScheduler has an option in the setup form; Remote Tab; API Control sub-tab that allows TechScheduler to use or ignore API commands. You can also specify the registry key where API commands are placed.  By default TechScheduler will not act on API commands.

The registry setting to enable or disable API use is found in the 'Config' key: 'bAllowAPIInterface' set to either true(1) or false(0).

In the API key will reside the following values:

'iAPIAction' : integer value specifying the API action to take (see table below)

'sAPIJobName' : string value specifying the valid TechScheduler job to use.

'sAPIParam' : string value specifying the configuration parameter to modify for either a job or for the general configuration parameters, ie: "sLostData"

'sAPIsData' : string value specifying the string data to write for job or techscheduler configuration parameters.

'iAPIiData' : integer value specifying the integer data to write for job or techscheduler configuration parameters.

'bAPIbData' : boolean value specifying the boolean data to write for job or techscheduler configuration parameters.

'iLastError' : integer value that TechScheduler will update once it processes the API command. Your program may initialize this to 0 when you write a new action to prevent old errors from being present.

API Action : 1 - Kill TechScheduler

              2 - Pause TechScheduler

              3 - Restart TechScheduler

              4 - Run Job now

              5 - Pause Job

              6 - Restart Job

              7 - Delete Job

              8 - Read Job File

              9 - Set Job parameter

              10 - Set Techscheduler Config Parameter

              11 - Write to TechScheduler log

              12 - Set Job Group

Programming events:

- Write the API action and related values to the registry.

- Watch the 'iAPIAction' value until it becomes 0, this indicates that TechScheduler has read the values, acted on the command, set the 'iLastError' value and then reset the 'IAPIAction' back to 0 indicating to you that you can set another API command.

The 'iLastError' will have one of these values:

0 - function successful

1 - job name not set

2 - job not found

3 - parameter id invalid

4 - job file name invalid

5 - job file not found

6 - TechScheduler unable to process job file

7 - Job active, cannot take action


Programming the NT Service API

The TechScheduler NT Service API is based on setting values in a key located in the TechScheduler registry area.

TechScheduler has an option in the setup form; Remote Tab; API Control sub-tab that allows TechScheduler to use or ignore API commands for the NT Service. You can also specify the registry key where API commands are placed.  By default TechScheduler will not act on API commands.

The registry setting to enable or disable API use is found in the 'Config' key: 'bAllowSvcAPIInterface' set to either true(1) or false(0).

In the API key will reside the following values:

'iAPIAction' : integer value specifying the API action to take (see table below)

'sAPIJobName' : string value specifying the valid TechScheduler job to use.

'sAPIParam' : string value specifying the configuration parameter to modify for either a job or for the general configuration parameters, ie: "sLostData"

'sAPIsData' : string value specifying the string data to write for job or techscheduler configuration parameters.

'iAPIiData' : integer value specifying the integer data to write for job or techscheduler configuration parameters.

'bAPIbData' : boolean value specifying the boolean data to write for job or techscheduler configuration parameters.

'iLastError' : integer value that TechScheduler will update once it processes the API command. Your program may initialize this to 0 when you write a new action to prevent old errors from being present.

API Action :

              2 - Stop Service

              3 - Start Service

              4 - Run Job now

              5 - Pause Job

              6 - Restart Job

              7 - Delete Job

              8 - Read Job File

              9 - Set Job parameter

              10 - Set Techscheduler Config Parameter

              11 - Write to TechScheduler log

             12 - Set Job Group

Programming events:

- Write the API action and related values to the registry.

- Watch the 'iAPIAction' value until it becomes 0, this indicates that TechScheduler has read the values, acted on the command, set the 'iLastError' value and then reset the 'IAPIAction' back to 0 indicating to you that you can set another API command.

The 'iLastError' will have one of these values:

0 - function successful

1 - job name not set

2 - job not found

3 - parameter id invalid

4 - job file name invalid

5 - job file not found

6 - TechScheduler unable to process job file

7 - Job active, cannot take action


Using the API Interface DLL

We have supplied an API Interface DLL that exports functions that you can use in your programs to interface to TechScheduler.  The DLL is written in Delphi using StdCall prototypes that are compatible with Delphi, C++ and Visual Basic. The DLL is TKSHDAPI.DLL.

From a Delphi program, the function declarations are as follows:

 RunScheduler(CallerHWnd:integer; Path:pchar):integer;

 KillScheduler:integer;

 PauseScheduler:integer;

 StartScheduler:integer;

 RunJob(jobname:pchar):integer;

 PauseJob(jobname:pchar):integer;

 StartJob(jobname:pchar):integer;

 DeleteJob(jobname:pchar):integer;

 SetJobParameter(jobname:pchar;paramid:pchar;

                         strdata:pchar;intdata:integer;

                         booldata:boolean):integer;

 GetLastAPIError:integer;

 ReadJobFile(jobfilename:pchar):integer;

 SetConfigParameter(paramid:pchar;

                    strdata:pchar;intdata:integer;

                    booldata:boolean):integer;

 WriteLogEntry(jobname:pchar; logdata:pchar):integer;

 SetJobGroup(groupname:pchar):integer;

 GetVersion:pchar;

From a C++ program, the function declarations are as follows:

 int RunScheduler(int CallerHWnd, char* Path);

 int KillScheduler;

 int PauseScheduler;

 int StartScheduler;

 int RunJob(char* jobname);

 int PauseJob(char* jobname);

 int StartJob(char* jobname);

 int DeleteJob(char* jobname);

 int SetJobParameter(char* jobname, char* paramid,

                         char* strdata, int intdata,

                         bool booldata);

 int GetLastAPIError;

 int ReadJobFile(char* jobfilename);

 int SetConfigParameter(char* paramid,

                         char* strdata, int intdata,

                         bool booldata);

 int WriteLogEntry(char* jobname, char* logdata);

 int SetGroupName(char* groupname);

 pchar GetVersion;

Each function returns an INT with the following result:

0 - Function successful

1 - Function failure

2 - Last message not retrieved by TechScheduler

3 - Could not create TechScheduler process

4 - TechScheduler not set to accept API updates

The GetLastAPIError will return the following values:

0 - function successful

1 - job name not set

2 - job not found

3 - parameter id invalid

4 - job file name invalid

5 - job file not found

6 - TechScheduler unable to process job file

7 - Job active, cannot take action

In the TechScheduler installation folder there is a Delphi demonstration project and a C++ Builder demonstration project.  If these folders do not exist then reinstall TechScheduler and be sure they are selected in the Custom installation.


Using The NT Service API DLL

We have supplied an API Interface DLL that exports functions that you can use in your programs to interface to the TechScheduler NT Service.  The DLL is written in Delphi using StdCall prototypes that are compatible with Delphi, C++ and Visual Basic. The DLL is TKSVCAPI.DLL.  Our installation program installs this DLL into the Windows\system (or WinNT\system32) folder.

From a Delphi program, the function declarations are as follows:

 StartService:integer;

 StopService:integer;

 PauseScheduler:integer;

 StartScheduler:integer;

 RunJob(jobname:pchar):integer;

 PauseJob(jobname:pchar):integer;

 StartJob(jobname:pchar):integer;

 DeleteJob(jobname:pchar):integer;

 SetJobParameter(jobname:pchar;paramid:pchar;

                         strdata:pchar;intdata:integer;

                         booldata:boolean):integer;

 GetLastAPIError:integer;

 ReadJobFile(jobfilename:pchar):integer;

 SetConfigParameter(paramid:pchar;

                    strdata:pchar;intdata:integer;

                    booldata:boolean):integer;

 WriteLogEntry(jobname:phcar; logdata:pchar):integer;

 SetJobGroup(groupname:pchar):integer;

 GetVersion:pchar;

From a C++ program, the function declarations are as follows:

 int StartService;

 int StopService;

 int PauseScheduler;

 int StartScheduler;

 int RunJob(char* jobname);

 int PauseJob(char* jobname);

 int StartJob(char* jobname);

 int DeleteJob(char* jobname);

 int SetJobParameter(char* jobname, char* paramid,

                         char* strdata, int intdata,

                         bool booldata);

 int GetLastAPIError;

 int ReadJobFile(char* jobfilename);

 int SetConfigParameter(char* paramid,

                         char* strdata, int intdata,

                         bool booldata);

 int WriteLogEntry(char* jobname, char* logdata);

 int SetGroupName(char* groupname);

 pchar GetVersion;

Each function returns an INT with the following result:

0 - Function successful

1 - Function failure

2 - Last message not retrieved by TechScheduler

3 - Could not create TechScheduler process

4 - TechScheduler not set to accept API updates

The GetLastAPIError will return the following values:

0 - function successful

1 - job name not set

2 - job not found

3 - parameter id invalid

4 - job file name invalid

5 - job file not found

6 - TechScheduler unable to process job file

7 - Job active, cannot take action

In the TechScheduler installation folder there is a Delphi demonstration project showing how to use the NT Service API DLL.


Programming Examples

The following examples demonstrate use of the GUI API DLL:

c++ - cbproj.bpr (c++ builder)

delphi - testproj.bpr

vb - caller.mak

The following example demonstrates use of the NT Service API DLL:

delphi - testproj2.bpr


Job Groups and Jobs

TechScheduler provides a mechanism to group related schedule jobs into job groups. Job groups can be dynamically loaded from the TechScheduler GUI and new job groups can be defined without restriction.

By default TechScheduler starts with the "Default" group of jobs loaded into the scheduler engine. By selecting another group from the dropdown list, the timer engine clears the previous group's jobs and loads jobs only from the selected group.  Note: Jobs within groups not loaded into the scheduler engine will not run at preassigned times, only jobs in the selected group will run.

Startup Group:

Within the configuration you can specify whether you want the Default group or the last active group to be selected when TechScheduler is restarted.

Registry settings:

Within the \TechScheduler key all jobs in the default group will be subkeys under the \TimedJobs key, other job groups will appear at this key level, ie: \TechScheduler\My Group.

Using with the NT Service:

The NT Service will load the group specified in the GUI configuration. If you have specified that GUI changes be transmitted to the NT Service then a change of Job Group in the GUI will force the NT Service to load the new job group into the scheduler engine.

Moving jobs between groups:

There currently is no menu or toolbar option to move jobs between groups, however you can move jobs by using the "Save Jobs" on the "Jobs" menu to save jobs you want to move, change to receiving job group and then use the "Read Jobs" option on the "Jobs" menu to read the jobs. You are going to get all the jobs from the originating job group, simply delete the jobs that are not needed from each job group.


Scheduling a Print Job

Use the print job to print multiple step printed output that can consist of a mixture of text strings and data read from files.

To Schedule a Print Job:

a. Click on the "Create a New Job" button on the main form or use the menu option.

b. Select the Print Job button from the New Job Selection form.

The Print Job Form will  be shown.  On the print form is a list that will contain all the print steps you assign to this job.

Complete the basic information on the form:

Job Name. The alphanumeric unique name for this job. There is no length restriction though it should describe the goal of the job being scheduled.

Check the "Run on demand only" button if this job is not to be scheduled.

Use the Calendar and Schedule buttons to schedule when this job will run.

Use the other entry\customization fields as follows:

Add a New Print Step. When you click this button you will be shown the Print Step entry form. All fields at this point will be empty or at their default values. Make the necessary entries on the Print Step Entry Form.

Edit Selected Step. When you select an existing step from the list of print steps you can click this button to display the Print Step Entry Form with this step's data loaded. You can modify the data for this step.

Delete Selected Step. You can select an existing print step and click this button to delete it from the list of print steps for this print job.

Under the "Options" group you can set the following features for this job:

Prestart Actions. Activities that should occur BEFORE the job starts.Click on this button to use the pre-start actions form. see: Setting Prestart Criteria

Post-Job Actions. Activities that should occur AFTER the job ends. Click on this button to use the post-job actions form.  see: Setting Post-Job Criteria

Notification Criteria. Automatic emails that are sent when the job starts or ends. Click on this button to use the notifications form.  see: Setting Notification Criteria

Make this a secure job. This job can not be changed without entering the TechScheduler password.

Put this job on hold. This job will appear on the job list in "Hold" status immediately.


Print Step Entry Form

Complete the following fields on the print step entry form.

Print a String. Check this box to print the string that you enter in the edit field provided.

Print a File. Check this box to print the contents of the text file you specify in the edit field provided. Note that the print job will print the file based on CR/LF breaks in the file.

Print Information. Make the following choices:

Justification. Choose between left, center and right justification for the data associated with this step.

Follow this with.  Specify what should be printed after this step is printed: Nothing, a Black line or a Page Break.


Variable Management

Techscheduler allows management of user defined variables. Variables can be used within the context of any job as part of the pre-start criteria and can also have values set or affected by the outcome of jobs using post-job criteria.

Adding and maintaining variables

Using variables in job pre-start criteria

Setting variables in job post-job activities


Adding & Maintaining Variables

The variable maintenance dialog is accessed from the main menu ( ) or the main control bar. Techscheduler has a limit of 255 user defined variables.

On the Variable Form you will find the following controls:

Add Variable - Click on this button to add a new variable

Edit Variable - Edit the variable highlighted in the list

Delete Variable - Delete the variable highlighted in the list

OK - Close the form and update the variable settings in the registry

Cancel - Close the form without updating the variable settings in the registry

List of All Variables - The list has the following columns

- Variable Name - The name you define for the variable

- Variable Type - Either Integer, Boolean or String

- Initial Value - When the variable is created, initial value set

- Initialize when - Either one when the variable is first used or every day during the Start-of-Day process reset back to the initial value

The New Variable / Variable Edit Form

When adding or editing a variable, you define the values using the "Variable Setup Form". The form has the following controls:

Variable Name - In the edit field type the variable name

Variable Type - Set the Radiobutton to the correct variable type

Initial Value - For either Boolean, Integer or String use the associated fields to set the initial value

Set to Initial Value - Use the Radiobutton to select when to set to initial value

Ok - Click here to save changes

Cancel - Click here to cancel changes


Using Variables in  Job Pre-start criteria

Each Techscheduler job can use established variables as part of the pre-start criteria that determine whether a job can run or not (see: Pre-Start Criteria)


Setting Variables in Job Post-Job Activities

Variable values can be modified only as part of any TechScheduler job's post-job activities (see: Post-Job Activities).


Version History

v3.10 2/25/00

 1. New Job type: Web Job. This job type lets you define up to 10 web browsers which have their own characteristics and DLLs. You can Load, Change, Print, Refresh and Close each browser using job options. Requires the new WebDll.DLL includes in the setup package.

 2. Corrected bug in keystroke emulation job that was not reading keystrokes from a saved keystroke file.

 3. Updated timer engine to prevent jobs from repeatedly running during their kickoff minute (bug #2).

 4. Modified FTP job port selection to allow port maximum of 65535.

 5. Modified SMTP configuration port to default to PORT 25 (instead of 80 which is HTTP).

v3.05 2/18/00

 1. New functionality for FILE COPY jobs. Job form allows you to specify a target directory to be created in a dated format, ie: 99122600. Use for backing up files to dated folders.

 2. Corrected bugs when using the INI file for config and job storage; Deleting jobs no longer GPFs; Registration keys remain recognized.

 3. Restored "Save Configuration to File" option on the "File" menu.

 4. Corrected bug in "Read Configuration From File" that was causing GPF.

 5. Corrected bug in FTP that was not enabling the FTP Log.

v3.04 2/15/00

 1. Job timer corrected to not run jobs several times during their kickoff minute.

v3.03 2/14/00

 1. Fixed GPF caused when running or linking to On-Demand job.

 2. Corrected spelling (!!) mistakes on a few forms.

v3.02 2/10/00

 1. Corrected bug in timer linked list that was running jobs on the wrong days.

v3.01 2/07/00

 1. Corrected bug where Variable entry form could not be entered due to a missing OnClose property.

 2. Increased job RUNLATE maximum to 720 minutes (12 hrs).

 3. Corrected bug in timer engine where certain jobs would run every second for their scheduled kickoff minute.

v3.00 2/01/00

 1. Complete rewrite of printing capability including Print Preview and Print Setup screen.

 2. Windows 2000 tested! Completion of complete regression test on GUI and Service running on Windows 2000 release candidate 2.

 3. New Job: PRINT JOB. Schedule reporting capability lets you setup multiple step print jobs to print text and file contents (ie: logs and error reports) with variable fonts, justification, paper and orientation.

 4. Corrected bug in TackyNote job that removing all entries would not remove them and they would appear the next time the job was opened.

 5. Update to NT Service / GUI relationship. If GUI is started it will ask user if NT Service should be stopped while jobs are being added or edited.

 6. Added option on the Configuration form -> Data Control tab to allow/disallow the use of Job Groups. If not selected, the Job Group controls are not shown on the main toolbar.

 7. Corrections to zip job to properly save options to registry.

 8. New capability to save and read configuration and job data to an INI style file as opposed to the registry. This is useful in distribution maintenance of TechScheduler jobs. New option in setup wizard allows you to select the INI file option and path for the file.

 9. Setup Wizard now will optionally install the NT Service via control panel if the NT Service executable is found and the OS is NT or 2000.

10. Variable Management added. Create Integer, String and Boolean variables and then utilize them in job pre-start criteria and set them in post-job activities.

11. Corrected bug in File Copy that was aborted when it tried to copy an empty folder.

12. New Registration key formula since hackers have released the keys!

v2.81 11/10/99

 1. Scheduled Updates to the main GUI: 1. Removed text from main toolbar buttons. 2. Moved Group selection controls to the main toolbar. 3. Added new Tab under Schedule to break the Timed Jobs and the Demand Jobs apart for easier job administration. 4. Added glyphs to the tab controls.

 2. Corrected bug in FTP Send job where job would fail if no files were found in the first directory of a multidirectory send.

 3. Added code to limit Techscheduler to 1 instance running. If you try to open another instance the commandline parameters are passed to the already running instance and executed, ie: RUNONDEMAND.

 4. Corrected bug where FTP DELETE jobs would fail; bug in UNIX slash handler.

v2.80 11/3/99

 1. Added new capability to have jobs write their completion status to the standard NT Event-Log. each job can be set to optionally not write to the log and can be given a unique event id.

 2. Updated job list status information to be correct when a job fails to start.

v2.77 10/30/99

 1. Modified install to give WININET.DLL and SHLWAPI.DLL dated 3/10/99 in order to address issue on several NT installations where an exception was occuring using the distributed WININET.DLL.

 2. Corrected FTP Job Form so that PASSIVE, HOST TYPE and other properties are saved to the registry and then read correctly.

 3. Keystroke job in timer engine updated to issue a Window Focus command before each individual keystroke line is sent.

 4. Correction to NT Service watchdog job type to correctly reported services not running.

v2.76 10/20/99

 1. Corrected bug where source file in FTP upload was not being deleted if wildcard file selection was used.

 2. Added option to File Copy/Move that allows target file to be set with the file date of the source file instead of the date when the copy took place.

 3. Added code to delete a partial filecopy target if a problem occurs during copying, also logs into debug log.

 4. Corrected bug where delete button on Favorites form did not work.

 5. Corrected bug where non-wildcard file delete job was reporting a job failure even though the file was deleted.

 6. Registry settings for Email notification flags were changed from numeric to boolean. Any job email notification settings may have to be re-entered. Sorry.

 7. Added MAPI Email setup option to either use the Default Registry Profile or use the user entered Profile and Password.

 8. Correction so that HELP button on script job works.

 9. Modified pre-start activity check to kickoff the post-job failure criteria (ie: another job) if the pre-start activity fails.

10. Modified Keyboard Emulator job to issue a SetForeGroundWindow call so that windows that do not have the focus will be brought to the foreground before keystrokes are issued.

v2.75 10/6/99

  1. Added new watchdog job type: Check for NT Service running (for WinNT and Win2000 only). Watchdog job fails if NT Service is not running or stops.

 2. Corrected exception when trying to add watchdog job items.

 3. Modified file selection button on watchdog File option to give a File Selection dialog.

 4. Corrected error where Clicking Pre-Start button on the Keyboard emulation and GlueIt jobs brought up the Font dialog.

 5. Centered Email Notification screen.

 6. Corrected bug in Config Form where "Delete File After Refresh" button checked setting was not being saved to the registry.

 7. Rebuild using the Borland Delphi 5 compiler.

 8. Added GetVersion exported function to the NT service API.

v2.74 9/15/99

 1. Modified ShellExecute calls to use both Program and Option parameters.

v2.73 9/14/99

 1. Changed setup wizard to default registry target to LOCAL_MACHINE.

 2. Fixed bug that would not let you delete all attachments from an email job.

 3. Fixed bug that would not let you delete all recipients from an email job.

 4. Added scrollbox controls to help resizing problem to email notification screen.

 5. Corrected bug where jobs were not starting if Techscheduler was started as an icon or a mini-status box.

v2.72 9/8/99

 1. New Feature: Maximum concurrent jobs. Lets you throttle the number of jobs your CPU will run concurrently. Defaults to 0 which is unlimited jobs,

 2. Resized several screens to fit better on notebooks.

 3. Added new panel on the statusbar that shows Total number of active jobs this day "T=" and actual running jobs at the moment "A=".

 4. Added option on FileJob to have a way to copy source to multiple targets using wildcards and each file from the wildcard is deleted after copy to last target instead of waiting until the wildcard copy is done. On OPTIONS page of job.

v2.71 8/7/99

 1. Corrected bug that was not inoking the configuration save logic when the program ended.

 2. Added exception handling around script jobs to catch script errors.

 3. Added option on File Copy/Move job to set the buffer size from 1 byte  to 64000 bytes, defaults to 4096 bytes. This is on the option tab of the job entry form.

 4. Corrected logic in File Copy job where test to only copy newer files was not activating, added debug log entry when this test fails.

 5. Updated keystroke job so that window count dialog does not appear upon entry to the form.

v2.70 7/27/99

 1. Added new email option - CUSTOM EMAILER. Allows you to specify a command line emailer to use for job notifications and regular email jobs. For example to use "NET SEND" this would work.

 2. Corrected problem with network PING not working in jobs.

 3. Corrected problem in FTP not retrieving files from certain types of FTP servers.

 4. Corrected bug in Email job that was not allowing a mix of message body and text from a file.

 5. Corrected bug in MAPI email job handler that was not utilizing message body correctly.

 6. Added FTP Logging to GET operations.

 7. Added option in CONFIGURATION to allow you specify the time the daily Start-of-Day will run. This allows users with mission critical midnight tasks to run Start-of-Day later.

 8. Added option in CONFIGURATION to specify a system wide job suspension daily time and duration, ie: 12:30 am for 15 minutes. This provides a mechanism to ensure jobs will not run during backups, etc..

 9. Added button on Keyboard emulation job to refresh the WINDOWS and CLASSES lists without having to exit the job.

10. Corrected bug on Keyboard emulation job where CLASSES was being written to the WINDOWS dropdown list.

v2.62 7/15/99

 1. Workaround for MultiProcessor NT bug where GUI was not appearing. Logged issue with Microsoft as bug is with low-level threaded timer code hanging only in multiprocessor environment.

 2. Added /MULTIPROC command line option which prevents the threaded time code from being executed in case multiprocessor bug still appears.

 3. Corrected Range Check Error for Windows NT REXEC and SU jobs.

v2.61 7/8/99

 1. Corrected bug in EMail job where it was reporting error "SMTP Server not selected" even on MAPI jobs.

 2. Added process to delete jobs from API or remote job update without the deletion confirmation prompt.

 3. Corrected bug in watchdog job entry form that was not saving or updating job tests correctly.

 4. Added "passive", "host system type" and "resolve names" options to the FTP job.

 5. Updated keyboard emulation job to fix "windows" and "class" list and control items retrieved.

 6. Replaced system icon tray with updated component using imagelist for icon updates.

 7. Removed capability to run script jobs from the NT Service, this seems to be a microsoft problem which we will try to workaround however we get an OLE error which translated to the runtime 217 error that was reported.

v2.60 6/22/99

 1. New "Java Script / VB Script" job type. Using the Microsoft script engine and JScript/VBScript controls, you can now schedule scripts to execute.

 2. Added new export function "char* GetVersion" for the API DLLs which will return a string with the version and date of the API DLL.

v2.58 6/14/99

 1. New "Job Groups" option. Frequently requested feature lets you group jobs into job groups which are loaded and managed independantly.

 2. Updated Timer engine to reload jobs within the selected job group only.

 3. Corrected bug in /Nowizard option so that registry defaults are written.

 4. Corrected bug with security password entry giving Range Check Error.

 5. Corrected bug with Font Selection in Setup form that cause exception.

 6. Updated job list to not say "Failed" under job status for jobs that had not run.

 7. Corrected bug in Watchdog job setup screen where Range Check Error occured for large disk free sizes entered.

 8. New API function "setjobgroup" to match new internal job groups parameters.

 9. Changed FTP process to force creating of all directories on local target path, not just the target directory, ie: "c:\mydir1\mydir2\mydir3\finaldir" would all now be created.

10. Added process to prevent FTP from using Internet caching under windows 95/NT.

11. Bug corrected in timer engine to increase Disk Free check to handle up to Int64 size of disks, corrects range check error.

12. Corrected issue with editing demand jobs, schedule & calendar is now not available when in demand mode.

v2.57 6/7/99

 1. Update to correct bug that would not show techscheduler on startup minimized.

 2. Correction of FTP bug that was not letting multiple FTP jobs to be run.

v2.56 6/3/99

 1. Entire system migrated and rebuilt using Delphi 4 (sp3) compiler.

 2. Expanded Termination minutes on termination form to 2400 minutes maximum.

 3. Updates to FTP job processor to correct problems with source file deletion.

 4. Updated tab order of controls on job screens to be more logical.

 5. Job update from INI file now allows Update to existing jobs by using keyword in the INI info section.

 6. Update to correct FTP Receive file with wildcards bug.

 7. Update to correct FTP Delete file with wildcards bug.

 8. Using the "Abort active job" right click will now work on jobs waiting for retry.

v2.55 5/13/99

 1. Added API for the NT Service, seperate DLL: tksvcapi.dll and examples. Allows you to start and stop the service and affect jobs.

 2. Corrected bug in FTP jobs where GET files were sometimes stopping after the first file.

 3. Added new API function: WriteLogEntry. Allows you to send strings from your program to be written in TechScheduler log format to the active TechScheduler log.

 4. Added Visual Basic (VB) example for using the API.

v2.54 5/5/99

 1. Added new programming API. Enable control from API on Config form (remote panel). API uses registry key and values that TechScheduler looks for on timed event. Not elegant but what a customer requested. Can be used by any program that can access the registry.

 2. Added API interface DLL. Using Stdcall functions this DLL can be used from Delphi, C++ or VB programs to set the API interface in the registry. Also has function to kickoff TechScheduler. Comes with Demo Programs with source code to show interface DLL usage.

 3. Corrected bug where user Abort of active job flag was not being cleared.

 4. Modified pre-start delay so that it does not happen when user clicks on "Run Job Now".

 5. Corrected bug with "Delete Job" action which thought some jobs were active when they were not.

 6. User abort of job will now stop any failed job retries from happenning as well.

v2.53 4/28/99

 1. Added extended debug information for CreateProcess and ShellExecute program job execution to help diagnose problems executing program jobs.

 2. Added section in help showing ShellExecute failure return value meanings.

 3. Added extended debug information for NT Service to help diagnose problems.

 4. Consolidated additional routines between the GUI and SERVICE version.

 5. Added popup menu to right click on job list, has options to RUN, EDIT, DELETE and ABORT selected job.

 6. Added new capability to abort an active job (see above), lets you gracefully end jobs that are taking too long. Does not work with all job types since some are blocking when active.

v2.52 4/26/99

 1. Added Global Date and Time exclusion form. From any job you can add or modify the global date and time exclusion settings which allow you to build a master calendar of dates and times to exclude in jobs.

 2. Added option to the Main EDIT menu to invoke the Global Date Exclusion form.

 3. Added option to the keystroke emulator job to allow the actual keystroke command to be stored in a file (save option on the job) and then read from the file during job run time. This allows other programs to create realtime keystroke files which the job will read.

 4. Discovered some differences in timer engine routines between the GUI and NT Service routines, consolidated them using compiler directives.

v2.51 4/21/99

 1. Added new feature on PRE-START ACTIVITIES form which allows you to specify a delay prior to starting the job if the job was invoked from another job, in other words: job A invokes job B on completion with a 30 second delay before starting.

 2. Corrected bug where "late start" jobs were not clearing their late flag and therefore would run forever.

 3. Corrected bug on "On Demand" checkbox setting for jobs which was resetting itself.

 4. Added Command Line parameter /NOWIZARD= which prevents the setup wizard from appearing for new versions of TechScheduler.

 5. Added Command Line parameter /REGISTER= which lets you put registration name and key on the command line to force registration at startup, mainly for mass distribution of TechScheduler across many workstations with the same key.

 6. Rewrite of FTP to make it non-blocking, this allows TechScheduler to continue running during FTP jobs.

 7. Added visibility of FTP job progress on the Statusbar.

 8. Added visibility of ZIP/UNZIP job progress on the Statusbar.

 9. Corrected bug in Zip job where dated zips were not working if you did not select subdirectories.

v2.50 4/6/99

 1. Added new ZIP/UNZIP job type. Integrated capability to zip and unzip files. Routines to search hard drive for new files and build complex zip archives.

 2. Added remaining job actions from the toolbars to the JOB menu for consistancy.

 3. Added delete job confirmation dialog.

 4. Modified all new jobs to default to "On Demand" instead of scheduled so that jobs can be tested first without invoking the scheduler.

 5. Added BAT,CMD and *.* for the program job file browse dialog.

 6. Removed right click showing "Open" and "Exit' menu.

 7. Added better visibility for jobs running by putting comment on the status bar and ensuring image is updated for all types of jobs.

v2.45 3/14/99

 1. Corrected bug in File job which was not deleting subdirs if the option to delete source after copy was set.

 2. Corrected bug in FTP job which was not deleting subdirs if the option to delete source after copy was set.

 3. Added new option on FILE menu to "Load Parameters From File". Opposite of "Save parameters to File".

v2.44 2/28/99

 1. Corrected bug in FTP Browse for target directory that was not showing directories correctly on some systems.

 2. Corrected bug in Config form that was not saving checked setting for "Delete job only if successful".

 3. Added "Delete Job after complete" logic to non-Program type jobs (ie: file, ftp) so that jobs will delete if flag is set.

 4. Added check to see whether scheduler files exist before trying to read from them. 1 less GPF!

 5. Corrected memory leak associated with CREATEPROCESS calls where the thread handle wasn't being freed using CloseHandle.

v2.42 1/24/99

 1. Corrected bug in FTP Browse that was giving 'Unable to connect to /' every time.

 2. Added expanded File Copy target browse for folder capability.

 3. Corrected bug in File Copy job save logic that was overwriting source file names from the list box.

 4. Corrected bug in jobs that carried over midnight while active so they appeared on next day's job list.

 5. Corrected bug in Keystroke job entry form that was not saving new or updated entries intermittantly.

v2.41 1/1/99

v2.40 12/18/98

v2.33 12/01/98

v2.32 11/22/98

v2.31 11/03/98

v2.30 10/16/98

v2.29 10/10/98

v2.28 10/02/98

v2.27 09/30/98

v2.26 09/08/98

v2.25 08/28/98

v2.22 07/24/98

v2.21 07/06/98

v2.20 06/23/98

v2.15 06/03/98

v2.10 04/22/98

 v2.08 04/16/98

v2.07 03/09/98

v2.06 03/04/98

v2.05 02/26/98

v2.04 02/25/98

v2.03 02/24/98

v2.02 02/23/98

v2.01 02/09/98

v2.00 02/04/98

v1.92 01/16/98

v1.91 01/07/98

v1.90 12/22/97

v1.83 12/12/97

v1.82 12/03/97

v1.81 11/26/97

v1.80 11/20/97

v1.71 11/6/97

v1.70 10/30/97

v1.62 10/28/97

v1.61.3 10/22/97

v1.61.2 10/20/97

v1.61.1 10/16/97

v1.61 10/14/97

v1.60 10/6/97

v1.50.6 10/03/97

v1.50.5 9/30/97

v1.50.4 9/19/97

v1.50.3 9/18/97

v1.50.2 9/16/97

v1.50.1 8/28/97

v1.50 8/20/97

v1.40.3 7/31/97

v1.40.2 7/29/97

v1.40.1 7/23/97

v1.40 7/17/97

v1.30 6/13/97

v1.10  3/24/97

v1.00b 2/15/97